我通过 .htaccess 重写规则将非 www 请求重定向到 www。
RewriteCond %{HTTP_HOST} !^www
重写规则 (.*) www.%{HTTP_HOST}/$1 [L,R=301]
但是现在我遇到了子域的问题。当我访问时touch.111.com
,上述规则重定向到touch.www.111.com
(无法访问),并且网站在触摸设备上中断。
请告诉我如何解决上述问题。
如果您只想重定向domain.com
到www.domain.com
并保留子域(例如touch.domain.com
),则必须具体说明:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [L,R=301]
这是适用于任何域名的通用解决方案:
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
# 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