我想强制“www”。在我的网址上(例如 http://domain.com 变为 http://www.domain.com )。但是,我不希望它强制作用于已经有子域的 URL(例如 http://images.domain.com 不应该变成 http://www.images.domain.com )。我在网上找到的以下代码片段执行了后者:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
我需要做什么才能让它为我工作?谢谢。
最佳答案
简单 以下规则强制使用 www,子域除外。
RewriteCond %{HTTP_HOST} =name.domain [NC]
RewriteRule ^(.*)$ http://www.name.domain/$1 [R=301,L]
编辑并粘贴它,重新启动apache。
解释:
RewriteCond %{HTTP_HOST} =name.domain [NC]
仅当有人键入 name.domain(您的域名)时才匹配。
当输入 subdomain.name.domain 时,RewriteCond 为 false 并且不重定向。你明白? 在您之前发布的规则中,您匹配 !(not)^(beginning by)www 和 subdomain.name.domain 满足 RewriteCond 并且是您不想要的。 :)
关于apache - 通过 .htaccess 强制 "www.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4907348/