簡體   English   中英

PHP-如何避免htaccess重定向中的無限循環

[英]PHP - How to avoid infinite loop in Redirect by htaccess

我想根據訪問者所在的國家/地區將訪問者重定向到特定的虛擬網址。 例如,如果您在美國並輸入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_URI}

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM