1

到目前为止,我已经使用此代码将请求从example.com/url/to/page重定向到www.example.com/url/to/page

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

最近我在我的页面中添加了example.com/x/abc之类的短链接这些链接的开头不应该有“www”

我试过

RewriteCond %{HTTP_HOST}    !^www\.  [NC]
RewriteCond %{REQUEST_URI}  !^x/     [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

但这不起作用。Firebug 显示 2 个重定向:非 www 到 www,然后短链接到长链接,而不是仅 1 个重定向短链接到长链接。每次更改 .htaccess 时,我也会清空缓存

如何实现正确的重定向?

4

1 回答 1

1

这应该有效:

RewriteCond %{HTTP_HOST}    !^www\.  [NC]
RewriteCond %{REQUEST_URI}  !^/x/     [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

%{REQUEST_URI}从开头的斜线开始匹配。

于 2013-09-15T17:18:33.477 回答