忽略GeoIP Htaccess Rewrite中的magento管理目录

时间:2012-03-15 19:59:41

标签: .htaccess magento geolocation geoip

我有一个magento安装,它使用htaccess mod_geoip将人们从特定国家/地区重定向到其他商店前端。它的工作就像一个魅力(在我忽略了javascript和皮肤文件之后),但是我会让一些来自澳大利亚的人在magento的后端输入一些订单。

问题是他们无法访问store / index.php / admin的主后端(他们被重写为austore / index.php / admin),当他们去订单时,他们缺少一些积分订单流程的组件,我认为是由于url被重写为austore / index.php / admin。想知道是否有一种方法,如果请求uri是store / index.php / admin,它们将不会被重写。我的代码在我的htaccess下面:

RewriteRule ^(skin|js) - [L,NC]

RewriteCond %{ENV:GEOIP_COUNTRY_CODE}     ^(AQ|AU|MY|BV|BN|BN|MM|KH|CN|CX|CC|CK|GQ|FJ|PF|GU|GW|HM|HK|ID|KI|KR|KP|KR|LA|MO|MY|MH|FM|MM|NR|NC|PG|NZ|NU|NF|PG|CN|PH|PN|WS|SG|SB|KR|LK|BN|TW|TW|AU|TH|TL|TK|TO|TV|VU|VN|VN|WF)$
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC]
RewriteRule ^ /austore%1 [L,R]

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

从中获取http://www.sonassi.com/knowledge-base/magento-kb/secure-your-magento-admin/,你可以在你想做的事情中使用相同的重写逻辑。

RewriteCond %{REQUEST_URI} !^/store/(index.php/)?(admin|custom_extensions_go_here)/ [NC]
RewriteCond %{REQUEST_URI} !^/store/downloader/ [NC]

RewriteCond %{ENV:GEOIP_COUNTRY_CODE}     ^(AQ|AU|MY|BV|BN|BN|MM|KH|CN|CX|CC|CK|GQ|FJ|PF|GU|GW|HM|HK|ID|KI|KR|KP|KR|LA|MO|MY|MH|FM|MM|NR|NC|PG|NZ|NU|NF|PG|CN|PH|PN|WS|SG|SB|KR|LK|BN|TW|TW|AU|TH|TL|TK|TO|TV|VU|VN|VN|WF)$
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC]

RewriteRule ^ /austore%1 [L,R]

请记住,通过.htaccess执行此操作可能会导致一些奇怪的问题,从长远来看,第三方扩展,具有自定义管理路由(不带/ admin前缀)中断。所以请注意这一点。

我主张使用Magento扩展(基于PHP),mod_geoip商店切换器 - 然后你可以使它只适用于Magento商店的前端区域(以防止我上面描述的潜在错误)< / p>