.htaccess 重定向 - 自动添加 www。如果不存在子域

Posted

技术标签:

【中文标题】.htaccess 重定向 - 自动添加 www。如果不存在子域【英文标题】:.htaccess redirect - automatically add www. if no subdomain exists 【发布时间】:2012-08-28 16:17:51 【问题描述】:

我需要任何 www。仅当子域尚不存在时才自动添加到我的域中。我确实希望子域绕过此重定向。

我该怎么做?

【问题讨论】:

【参考方案1】:

要在没有子域时自动将www 添加到您的域名,请将其添加到文档根目录中的 htaccess 文件中:

RewriteEngine On
RewriteCond %HTTP_HOST ^[^.]+\.[^.]+$
RewriteRule ^(.*)$ http://www.%HTTP_HOST/$1 [L,R=301]

【讨论】:

谢谢。这似乎有效。你能解释一下为什么前一个在你看来不起作用吗?我注意到它起作用了;但是,然后注意到我的子域不起作用。不确定这是否相关或只是传播问题。我很想了解更多关于 2 个答案的每一行的含义。谢谢! @kdjernigan www 从未添加到重定向中,第一个条件匹配子域。 此解决方案是否假定 TLD 只有一个点?即它不适用于.co.uk? 它只检查 TLD 中的一个点以使其与 .co.uk 一起使用,您需要在这里检查两个点是我的快速解决方案 RewriteCond %HTTP_HOST ^[^.]+\.[^ .]+\.[^.]+$ 只是改变这个条件其余保持不变 @LWC 正则表达式仅检查域和 TLD,它不知道“www”或任何其他子域之间的区别。因此,如果存在子域或“www”,则条件失败并跳过规则。

以上是关于.htaccess 重定向 - 自动添加 www。如果不存在子域的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 htaccess 将非 www 重定向到 www URL?

.htaccess 图片重定向

.htaccess重写合并

htaccess 301 将根目录重定向到子目录

.htaccess:将主域重定向到https:// www,子域重定向到https://(不带www)

Htaccess 301 重定向只是重定向域而不是页面