我在 处安装了一个 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 保持不变。