仅当用户请求域的根并且来自特定国家/地区时,才使用mod_rewrite和mod_geoip重定向

时间:2010-03-11 20:35:04

标签: apache .htaccess mod-rewrite

我需要一个规则和条件来处理这种情况:

来自美国的用户访问www.domain.com,domain.com,www.domain.com/或domain.com/,这应该重定向到www.domain.com/usvisitor /

但是,如果来自美国的用户访问www.domain.com/anydirectory,它会让他们直接通过,而不会发生重定向。

例如

RewriteEngine On  
RewriteBase /

GeoIPEnable On  
GeoIPDBFile /var/share/GeoIP/GeoIP.dat  

RewriteEngine on  
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$  
RewriteCond %{HTTP_HOST} ^domain.com$ [L]  
RewriteRule ^/$ http://www.domain.com/usvisitor$1 [L]  

我知道RewriteConditons和规则是错误的 - 只是无法理解它!

1 个答案:

答案 0 :(得分:2)

只是为了记录得到了解决:

RewriteEngine On  

GeoIPEnable On  
GeoIPDBFile /var/share/GeoIP/GeoIP.dat  
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$  
RewriteRule ^$ http://www.domain.com/usvisitor/$1 [L,NC,QSA]

简单 - doh!