为什么我的重写规则导致所有ajax错误400?

时间:2019-04-04 11:50:57

标签: php regex apache mod-rewrite url-rewriting

我有一个名为{HTTP:CF-IPCountry}的geoip http标头,用于存储国家代码,例如FR,US等。我需要做的是将此查询字符串loc = {HTTP:CF-IPCountry}添加到网站首页https://example.com/test-website/以及具有url以https://example.com/test-website/products/开头的任何页面,如果URL上还有其他查询字符串,则附加查询字符串,以便用户请求页面https://example.com/test-website/products/shoe/?size=s时应该改写为https://example.com/test-website/products/shoe/?size=s&loc=us

这是htaccess文件的外观

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /test-website/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test-website/index.php [L]

RewriteCond %{QUERY_STRING} !^loc [NC]
RewriteRule (.*) /%{REQUEST_URI}/?loc=%{HTTP:CF-IPCountry} [NC,NE,R,L,QSA]
</IfModule>

# END WordPress

我的上一个重写器有2个我希望解决的问题 1-导致前端和wordpress管理面板上我的网站上所有ajax出现400错误

2-我想将rewriteRule应用于2个地方,目前该规则仅适用于首页和https://example.com/test-website/wp-admin/ 我想申请的那两个地方是... a-转到网站首页https://example.com/test-website/ b-到所有以https://example.com/test-website/products/开头的页面

谢谢

0 个答案:

没有答案