首页 > 解决方案 > 如果 url 中没有子域,则重定向到 www

问题描述

我有

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

如果 www 不在 URL 中,则重定向到 www.mysite.com。问题在于它还会将 www 添加到子域,例如

test.mysite.com 将更改为 www.test.mysite.com

如果没有设置子域,我如何调整该规则以添加 www?

标签: apache.htaccess

解决方案


如果没有设置子域,我如何调整该规则以添加 www?

设置条件以使其仅适用于您的主域:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

确保在新浏览器中对此进行测试以避免旧缓存。

正则表达式^[^.]+\.[^.]+$将匹配具有单个 DOT 的任何域,因此它将跳过子域。


推荐阅读