我通过.htaccess重写规则将非www请求重定向到www。
RewriteCond%{HTTP_HOST}!^ www
RewriteRule(。*)www。%{HTTP_HOST} / $ 1 [L,R = 301]
但现在我遇到子域问题。当我访问touch.111.com
时,上述规则会重定向到touch.www.111.com
(无法访问),并且网站会在触摸设备上中断。
请告诉我如何解决上述问题。
答案 0 :(得分:3)
如果您只想将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]
答案 1 :(得分: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
答案 2 :(得分: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