2013-05-20 71 views
0

的WordPress 3.5.1的WordPress的.htaccess重写规则针对URL更改根

如何修改我的.htaccess文件重写/把WordPress的在自己的子后重定向旧网址路径到新路径-directory(使用https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory - 使用预先存在的子目录安装)?

的问题 我有一个更老的WordPress安装文件夹中的所谓的http:// {www.mywebsite.com URL}/WP。我修改了网站,并按照“移动”网站的说明操作,所以现在我的网域仅使用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 {}号开头试过线 - (我意识到,这些被注释 - 在他们取消注释真正的文件)

# 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 

是否有简单的方法来实现这一点?

回答

0

试试这个 - 它会做一个完整的301重定向(你想要的,因为这是一个永久不变的网址):

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

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

+0

谢谢你Nate。我尝试了这些代码和排列 - 包括在文件中的各个位置重新定位。不幸的是,这似乎没有帮助。重写从未受到影响。 (我希望有一种方法可以查看应用了哪些规则。) – SaB

+0

呵呵。我在这里通过重写测试器运行你的初始代码:http://htaccess.madewithlove.be/它认为你应该完成这项工作的第一次尝试。你确定你正在更新正确的'htaccess'文件吗? –

+0

今天我一直在与这个一起消失。我正在编辑.htaccess的/ root版本。我也看到了结果。我尝试了以下,它几乎可以工作RewriteCond%{REQUEST_URI} ^/wp RewriteRule ^/wp(。* +)$ $ 1 [R = 301,L]唯一的问题是这会缩短请求URI。所以如果我从http:// {{www.mysite.com}}/wp/archives/news开始,这里的.htaccess代码会重写为/ news(不仅是/ wp,还有关键/归档)。我尝试在代码中添加惰性限定符,但这似乎没有帮助。嗯......太近了。 – SaB