需要将非www url路由到www url,其他路由应该是原样

时间:2013-12-06 14:10:03

标签: regex apache .htaccess mod-rewrite

我知道如何通过.htaccess

将example.com路由到www.example.com
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www. %{HTTP_HOST}/$1 [R=301,L]

我的要求是example.com/something等等仍然应该在example.com/something上,而不是重定向到www.example.com/something。 可能吗?请帮忙。

编辑 - 让我们更具体一点。我只希望example.com被路由到www.example.com。如果exam​​ple.com/abcd或example.com/wxyz不应该重写它。 www.example.com的内容与example.com完全不同。所以我只希望example.com被路由到www.example.com,而不是别的。

2 个答案:

答案 0 :(得分:1)

添加另一个RewriteCond以从此规则中排除/something

RewriteEngine On

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

答案 1 :(得分:0)

只需创建将您的裸域(example.com而非www.example.com!)指向IP地址A

174.129.25.170条记录

现在,所有发送到example.com的请求都将重定向到www.example.com,而www.example.com本身就是CNAME。

174.129.25.170是wwwizer服务的IP地址。 wwwizer的作用是检测域名是否以“www”开头。如果没有,它会将请求重定向到带有“www”的URL。

保留斜杠(“/”)之后的部分URL,这意味着服务将适用于具有不同路径,参数和锚点的URL。

more info about wwwizer