如何强制将子域名设为默认域名但保持其他子域名正常运行?

如何强制将子域名设为默认域名但保持其他子域名正常运行?

我在 处安装了一个 WordPress 网站,http://www.example.com在 处还有一个测试 WordPress 网站http://test.example.com。我已成功使用此 .htaccess 代码http://www.example.com重定向到:http://beta.example.com

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

但是,尝试访问时,http://test.example.com它会强制http://beta.example.com/test/显示 404 错误。有没有办法让这个测试版重定向,同时仍保持我的 WordPress 网站正常http://test.example.com运行?

答案1

如果我理解正确,您希望 test.example.com 仍然转到 test.example.com。您可以添加另一个条件,并且必须同时满足这两个条件才能遵循规则。它看起来像:

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

现在,无论是子域名beta还是test子域名都不会重定向,但所有其他域名都会重定向。

如果你只希望 www.example.com 或 example.com 进入beta子域名,你可以使用

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

有一个很棒的工具可以检查 mod 重写规则,网址为http://htaccess.madewithlove.be/

或者,如果您有权访问服务器区域文件,则可以为所有想要指向beta子域的域设置 CNAME 记录,并且不会发生重定向,这样如果用户访问 www.example.com,当他们实际上在测试版网站上时,URL 保持不变。

相关内容