PHP - 如何通过htaccess

时间:2017-02-11 14:15:17

标签: php .htaccess

我想根据他们所在的国家/地区将访问者重定向到特定的虚拟网址。例如,如果您在Usa并输入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来实现它,并且它可以工作(有点......)但是我得到了一个无限循环。我试图制定一条规则,如果你没有字符串' AR'在你的网址中,进行重定向,否则,保持你的状态,但它不起作用。有谁可以帮助我。到目前为止,这是我的代码:

GeoIPEnable On

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

1 个答案:

答案 0 :(得分:1)

你的问题就在这一行:

RewriteCond %{HTTP_HOST} ^(?!.*AR).*$ [NC]

变量%{HTTP_HOST}是浏览器请求的域名。要检查路径,请使用%{REQUEST_URI}

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