2017-02-11 12 views
0

私は自分の国の特定の仮想URLに自分の訪問者をリダイレクトしたいと思います。たとえば、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の物理的な内容が常に表示されます。PHP - htaccessによるリダイレクトの無限ループを回避するには

私はこれについて多くのことを読んでいて、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] 

答えて

1

あなたの問題は、この行です:

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

変数%{HTTP_HOST}は、ブラウザによって要求されたドメイン名です。パスを確認するには、%{REQUEST_URI}

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

ありがとう、それは完璧に動作します! –

関連する問題