Wordpress .htaccess在更改根目录后重写URL的规则

时间:2013-05-20 19:43:54

标签: wordpress .htaccess mod-rewrite

WordPress:3.5.1

在将WordPress放入其自己的子目录后,如何修改我的.htaccess文件以将旧URL路径重写/重定向到新路径(使用https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory - 使用预先存在的子目录安装)?< / p>

问题 我在一个名为http:// {www.mywebsite.com URL} / wp的文件夹中安装了较旧的Wordpress。我修改了网站,并按照“移动”网站的说明进行操作,现在我的域名只使用http:// {www.mywebsite.com URL} /用于文件。 Wordpress现在运行一切(不像我的旧网站,WP只是沼泽链接。)移动指令一般工作正常。

但是,我希望我的旧链接(来自搜索引擎),例如http:// {www.mywebsite.com URL} / wp / archives / 1534重定向到http:// {www.mywebsite.com URL} / archives / 1534。使用WordPress使用的默认重写规则不会发生这种情况。在伪代码中:

  

除非使用一般重写规则   来自我想要的链接   从链接“剥离”/ wp。

我尝试了几个重写变体,引用了Apache mod-rewrite文档,但似乎都没有。我在下面的示例.htaccess文件中尝试的行以#Attempt {number}开头 - (我意识到这些是注释的 - 在实际文件中它们是未注释的。)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

#Attempt 1-- 
RewriteRule  ^wp/(.*)$  /$1  [L,QSA]

# Default WP ruls
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]

#Attempt 2 --
RewriteCond %{REQUEST_FILENAME} wp
RewriteRule (^/wp)(.*) $2 [L]

</IfModule>

# END WordPress

有没有一种简单的方法可以达到这个目的?

1 个答案:

答案 0 :(得分:0)

试试这个 - 它会执行完整的301重定向(你想要的,因为这是对URL的永久性更改):

RewriteRule ^wp/(.*)$ /$1 [R=301,L]

我还建议将它放在# BEGIN WordPress评论之前,因为我认为如果你改变某些设置,WordPress会重写里面的内容。