如何将 www 重定向到 root 的非 www 域,而不是子域

How to redirect www to nonwww domain for root, but not for subdomains

我有主域 - www.mydomain.com,想将其重定向到非 www 版本。这部分没问题并且可以工作。

代码:

RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^example\.com, [NC]
RewriteRule (.*) http://example.com/ [R=301,L]

我还有重定向到 anotherdomainnames.com 的子域。这是由托管设置的。在共享主机上拥有多个站点。例如:domain2.example.comwww.domain2.com 并且指向我的主机 public_html/domain2/ 上的文件夹。我认为这是附加域的默认 Cpanel 设置。

当我的 www 重定向工作时,子域不工作并指向 example.com/domain2/ 而不是 www.domain2.com。当我在上面评论重写代码时,子域正常工作。

有什么方法可以让工作的 www 重定向到非 www 域,并且还有工作的子域吗?

如果您只想重定向 www 子域(即 www.example.com),而不是任何非裸域(您当前正在做的),那么只需检查www 重定向中的子域。例如:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule (.*) http://example.com/ [R=301,L]

现在您的所有其他子域也不会被重定向。