2012-03-15 133 views
1

我有一个magento安装,它使用htaccess mod_geoip将人们从特定国家重定向到其他商店前台。它的功能就像一个魅力(在我忽略了javascript和皮肤文件之后),但是我会让澳大利亚的某个人在magento的后端输入一些命令。忽略GeoIP Htaccess中的magento admin目录重写

问题是,他们无法访问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] 

感谢您的帮助!

回答

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商店的前端区域(以防止我上面描述的潜在错误)

+0

感谢您的快速回答。虽然它似乎没有工作,但商店的基本登录页仍在更改为区域特定商店。我的商店不在root中,而是在root/store中,这有什么关系吗?我们最初看了一些php商店切换器,但是我们对它们的实现并不满意。 – coloradohiker 2012-03-15 21:11:41

+0

那么代码是正确的,所以我只能假设你的'RewriteBase'可能会导致存储在子目录中的问题。基于PHP的是更可靠的方法 - 假设你的PHP开发人员胜任。 – 2012-03-15 21:21:12

+0

这是我们的RewriteBase/store /。我们再看一下基于php的重定向。你觉得基于php的查找速度会有所下降吗? – coloradohiker 2012-03-15 21:24:47