首页 文章

子域名使用.htaccess将非www URL重定向到www(301)的问题

提问于
浏览
2

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

RewriteCond%!^ www RewriteRule( . *)www . % / $ 1 [L,R = 301]

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

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

3 回答

  • 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

  • 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
    
  • 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]
    

相关问题