【问题标题】:Htaccess redirecting non-www to wwwHtaccess 将非 www 重定向到 www
【发布时间】:2023-04-22 09:24:01
【问题描述】:

我已经在网上搜索了一个很好的通用 .htaccess 脚本,用于将非 www 重定向到 www,目前我正在使用这个:

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

这很好用,但是如果我转到子域 www.将被添加。有没有人有一个很好的重定向 .htaccess 脚本?

【问题讨论】:

标签: .htaccess redirect subdomain


【解决方案1】:

试试这个:

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^([^\.]+)\.([^\.]+)\.([a-z]{2,4})$
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

【讨论】:

    【解决方案2】:

    @Vince 如果请求的 url 类似于:

    http://www.abc.example.com

    恕我直言,我认为用你的方法它永远不会被重定向到:

    http://www.example.com

    这个怎么样?

    # Rewrite domain
    RewriteCond %{HTTP_HOST} !^www\.([a-z1-9\-]+)\.([a-z]+)$ [NC] [and]
    RewriteCond %{HTTP_HOST} ([a-z1-9\-]+)\.([a-z]+)$ [NC] 
    RewriteRule ^(.*)$ http://www.%1.%2/$1 [R=301,L]
    

    另外,你们可能会发现这些参考资料很有用:

    https://www.drupal.org/node/93603

    http://www.askapache.com/htaccess/modrewrite-tips-tricks.html

    【讨论】: