2

我通过 .htaccess 重写规则将非 www 请求重定向到 www。

RewriteCond %{HTTP_HOST} !^www

重写规则 (.*) www.%{HTTP_HOST}/$1 [L,R=301]

但是现在我遇到了子域的问题。当我访问时touch.111.com,上述规则重定向到touch.www.111.com(无法访问),并且网站在触摸设备上中断。

请告诉我如何解决上述问题。

4

3 回答 3

3

如果您只想重定向domain.comwww.domain.com并保留子域(例如touch.domain.com),则必须具体说明:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301]
于 2013-03-12T14:00:58.643 回答
1

这是适用于任何域名的通用解决方案:

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

http://www.htaccessredirected.com/force-redirecting-non-www-to-www-htaccess.htm

于 2015-02-17T21:07:42.290 回答
0
# For sites running on a port other than 80
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteCond %{SERVER_PORT} !^80$
RewriteRule ^/(.*)         http://www.example.com:%{SERVER_PORT}/$1 [L,R]

# And for a site running on port 80
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.example.com/$1 [L,R]

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
于 2015-09-09T08:50:16.720 回答