我有一个不再使用的旧网站,需要将流量重定向到其他地方。我遇到的一个问题是,网站的某个特定区域需要保持可用,以支持从网站购买商品的先前客户。
我想用.htaccess这样做,但我的正则表达式知识非常有限。
基本上我想重定向所有没有支持路径的站点请求(最后可以有其他段):
http://www.example.com/support
http://www.example.com/support/contact
http://www.example.com/support/ticket
但是,以下示例(两个中的两个)应重定向到新站点:
http://www.example.com
http://www.example.com/projects
到目前为止,我只想弄清楚如何使用以下方法重定向请求,而不使用其他参数:
RewriteRule ^$ http://www.newsite.com/ [L,R=301]
我知道我需要的基本上是这样的:
IF url does not contain www.example.com/support
THEN redirect
我只是不知道怎么用regex / .htaccess写它
任何帮助都将不胜感激。
答案 0 :(得分:1)
使用mod_rewrite指令更容易,例如:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteCond %{REQUEST_URI} !/support/? [NC]
RewriteRule ^(.*)$ http://www.newsite.com/$1 [L,R=301,QSA]
答案 1 :(得分:1)
Apache mod_rewrite
有great documentation。这真的值得一读。
在您的特殊情况下,为避免重定向以support
开头的所有路径,您可以使用RewriteCond
指令,即:
RewriteCond %{REQUEST_URI} !^/support
RewriteRule ^(.*) http://www.newsite.com/$1 [L,R=301]
答案 2 :(得分:0)
试试这个:
RewriteRule ^(support/?.*)$ $1 [L]
RewriteRule ^(.*)$ http://www.newsite.com/$1 [L,R=301]
第一个将您的support/
请求“转发”到support/...
并完成RewriteRules的处理。第二个应该将所有其他查询转发到新网站。