2014-11-05 36 views
1

我需要在我的网站上设置几个重定向。我htaccess文件是目前:htaccess - 重定向无法按预期工作?

RewriteEngine on 
RedirectMatch 301 ^/browse/ http://www.mysite.co.uk/designs 
Redirect /designs http://www.mysite.co.uk/our-designs 

重定向#1 - 我需要重定向曾经是www.mysite.co.uk/browse/....www.mysite.co.uk/designs/....所有旧网址(设计文件替换浏览文件夹)

一个例子是:

http://www.mysite.co.uk/browse/home/kitchens 

需要去太:

http://www.mysite.co.uk/designs/home/kitchens 

重定向#2 - 现在第二个重定向导致问题。我需要重定向刚刚页面:

http://www.mysite.co.uk/designs 

到:

http://www.mysite.co.uk/our-designs 

所以我用:

Redirect /designs http://www.mysite.co.uk/our-designs 

这重定向正确/designs页面our-designs页,但现在也改变任何网址与上述例子中的/designs/

http://www.mysite.co.uk/designs/home/kitchens 

应该保持,因为它是,但它更改为:

http://www.mysite.co.uk/our-designs/home/kitchens 

这给了我没有发现你的规则

回答

1

使用以下规则:

RewriteEngine on 
RewriteRule ^browse/(.+)$ /designs/$1 [R=301,L] 
RewriteRule ^designs/?$ /our-designs [R=301,L] 

如果主机不同,您可以将http://www.mysite.co.uk作为主机重写URL。

+0

这个很完美,非常感谢你:) – 2014-11-05 17:07:28

0

更改订单,并添加一个查询参数,以防止进一步重定向的页面:

RewriteEngine On 

RewriteCond %{QUERY_STRING} !^_noredir(&|$) [NC] 
RewriteRule ^designs/(.*)$ /our-designs/$1 [R=301,L,NC,NE] 

RewriteRule ^browse/(.*)$ /designs/$1?_noredir [R=301,L,NE,NC,QSA]