PHP-如何避免htaccess重定向中的无限循环

PHP-如何避免htaccess重定向中的无限循环,php,.htaccess,Php,.htaccess,我想根据访问者所在的国家将他们重定向到特定的虚拟url。例如,如果您在美国并输入www.mysite.com/subsite,则会重定向到www.mysite.com/subsite/US/ 如果您输入www.mysite.com/subsite/contact.php,则必须重定向到www.mysite.com/subsite/US/contact.php。对于另一个国家,例如阿根廷(AR),您将被重定向到www.mysite.com/subsite/AR/contact.php。在后面,您将

我想根据访问者所在的国家将他们重定向到特定的虚拟url。例如,如果您在美国并输入www.mysite.com/subsite,则会重定向到www.mysite.com/subsite/US/ 如果您输入www.mysite.com/subsite/contact.php,则必须重定向到www.mysite.com/subsite/US/contact.php。对于另一个国家,例如阿根廷(AR),您将被重定向到www.mysite.com/subsite/AR/contact.php。在后面,您将始终看到www.mysite.com/subsite/contact.php的物理内容

我读了很多关于这方面的书,并试图通过编辑htaccess来实现它,它可以工作(有点…),但我得到了一个无限循环。我试着制定一条规则,说“如果你的url中没有字符串'AR',就进行重定向,否则就原地踏步”,但这条规则不起作用。谁能帮帮我吗。以下是我目前的代码:

GeoIPEnable On

RewriteEngine On
RewriteOptions MaxRedirects=1
RewriteCond %{HTTP_HOST} ^(?!.*AR).*$ [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AR$
RewriteRule ^(.*)$ /subfolder/AR/$1 [R]

您的问题是这一行:

RewriteCond %{HTTP_HOST} ^(?!.*AR).*$ [NC]
变量
%{HTTP_HOST}
是浏览器请求的域名。要检查路径,可以使用
%{REQUEST\u URI}

RewriteCond %{REQUEST_URI} ^(?!.*/AR(?:$|/)) [NC]