如何将 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.com
是 www.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]
现在您的所有其他子域也不会被重定向。
我有主域 - www.mydomain.com,想将其重定向到非 www 版本。这部分没问题并且可以工作。
代码:
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^example\.com, [NC]
RewriteRule (.*) http://example.com/ [R=301,L]
我还有重定向到 anotherdomainnames.com
的子域。这是由托管设置的。在共享主机上拥有多个站点。例如:domain2.example.com
是 www.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]
现在您的所有其他子域也不会被重定向。