我有一个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]
感谢您的帮助!
答案 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>