我想将所有访问者重定向到我的WordPress网站,除了/cy/
子目录中的页面可用的翻译:
/cy/
例如
https://myoldomain.co.uk/cy/partners/
未重定向,但
https://myoldomain.co.uk/partners/
https://myoldomain.co.uk/
被重定向。
我已经尝试了很多,这一个工程在一个在线测试,但不是在实践中-所有的域,包括那些与/cy/
重定向。
RewriteBase /
RewriteCond %{HTTP_HOST} myoldomain\.co.uk
RewriteCond %{REQUEST_URI} !^/(cy|cy/.*)$
RewriteRule ^(.*)$ https://mynewdomain\.co.uk/$1 [R=301,L]
你知道我错过了什么吗
2条答案
按热度按时间dauxcl2d1#
如果你使用的是WordPress,那么你在文件后面有一个前端控制器模式,它会把所有非文件重写到
index.php
(WP前端控制器)。在重写引擎的 * 第二次传递 * 期间,/index.php
显然不是/cy...
,所以会发生重定向。但这应该在重定向中可见。您需要确保上述重定向只应用于来自客户端的初始请求,而不是重写的请求。您可以通过检查
REDIRECT_STATUS
环境变量(在初始请求中为空)来实现这一点。例如:
这需要接近文件的顶部,* 在 * WP前端控制器模式之前。
在测试之前,您需要清除浏览器缓存。最好使用302(临时)重定向进行测试,以避免潜在的缓存问题。
7kjnsjlb2#
这可能不是很好,但似乎排除wp-login.php和wp管理区从重定向.