我已经在 Apache 的 rewrite guide 上看到了这个技巧。关于如何将非 www 请求重定向到 www 请求:
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.example.com/$1 [L,R]
它将所有对 example.com 的请求重定向到 www.example.com。
但是我如何添加我希望来自 example1.com、www.example1.com、example2.com、www.example2.com 等的请求重定向到 www.example.com?
编辑:
解决方案如下:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE]
RewriteRule 略有不同并添加了“RewriteEngine on”
最佳答案
But how do I add in that I want requests from example1.com, www.example1.com, example2.com, www.example2.com, etc. to redirect to www.example.com?
你已经做到了。您的重写规则规定“如果 HTTP_HOST 不是 www.example.com(且不为空),则重定向到 www.example.com”。
只要您的服务器设置为将其他域指向您托管 www.example.com 的同一目录,就万事大吉了。
关于apache - 将多个域/URL 重定向到一个规范域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5966827/