.htaccess:强制www除了子文件夹

时间:2013-09-15 15:53:20

标签: apache .htaccess redirect mod-rewrite subdirectory

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

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然后短链接到longlink而不是只有1个重定向短链接到longlink。每次我改变.htaccess

时我也会清空缓存

如何实现正确的重定向?

1 个答案:

答案 0 :(得分:1)

这应该有效:

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

%{REQUEST_URI}在开始时从斜杠开始匹配。