将子目录中的站点重定向到根目录的最佳方式?

时间:2014-10-05 作者:omega33

我有一个WP 4.0站点,安装在:

mydomain.com/site
它已经存在很多年了,所以网络上有很多指向它的链接。

作为我正在进行的全面检查的一部分,我希望wordpress站点可以在根URI:mydomain访问。com(和www.mydomain.com),不需要“/站点”。

我找到了一些告诉我复制索引的文章。php和。htaccess访问根目录,并在wordpress设置中更改站点URI。但我遇到的说明似乎总是不完整的,因为他们似乎认为这是一个没有现有链接的新网站,以避免大量404错误。

因此,我现在面临的问题是,旧链接会生成404个错误(因为它们中有“/site/”。图像也无法显示,因为它们显然存储在数据库中,URI中带有“/site/”。

我一直在试图找出一种故障保护的使用方法。htaccess重写规则以重定向所有内容(我想wp admin除外?)发件人/站点收件人/

如果有用的话,我现有的permalink结构是mydomain.com/site/%postname%-%post_id%/

如果您有任何关于这方面最佳方式的建议,我们将不胜感激。谢谢

2 个回复
最合适的回答,由SO网友:omega33 整理而成

我成功实现这一目标的唯一方法是在.htaccess 网站目录:

RewriteBase \\
RedirectMatch 301 ^/site/$ /$1
RedirectMatch 301 ^/site/(?!wp-admin/|wp-content/|wp-includes/)(.*)$ /$1
虽然我知道RewriteRule ^site/ /$1 [R=301,NC,L] 应该有用的RewriteRule ^site/(.*)$ /$1 [R=301,NC,L] 应该也能工作(根据我读到的各种文章),我在这些方面没有运气(也没有服务器错误)。

我的主人是Hostgator。com-如果这个结果与他们的特定配置有关(我怀疑)。

SO网友:Tom Bangham

您可以通过移动index.php 要打开根目录的索引文件,请更改以下内容:

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . \'/site/wp-blog-header.php\' )
将站点替换为文件夹。然后在“管理”中的“设置-常规”下更改网站URL并删除文件夹www.website。co.uk/site将位于www.website。co.uk

然后保存站点将正常工作,尽管您需要删除.htaccess 并重新保存永久链接,以确保其符合新结构。

结束

相关推荐

如何使我的.htaccess文件可由wp-admin写入?

我的ISP更改了Wordpress博客的主机,一切都停止了。有一个DNS问题,但他们解决了这个问题,但除主页外的每个页面都返回了404错误。当我查看permalinks页面时(/wp-admin/options-permalinks.php) 在wp admin中,我看到了以下内容:如果您的。htaccess文件是可写的,我们可以自动执行此操作,但事实并非如此,这些是您应该在中包含的mod\\u重写规则。htaccess文件。在字段中单击,然后按CTRL+a组合键选择全部。添加它列出的内容(通过我的ISP