.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。如果不存在子域的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 301 重定向,在 Apache 中将斜杠添加到目录名称

从 url 中删除 'index.html' 并使用一个 301 重定向添加 'www'

LNMP最新教程之如何设定301重定向办法

搜索引擎优化-301 Cononical重定向-添加WWW

Paypal 自动登录重定向

nginx 配置http重定向到https