1

我有一个 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]

谢谢您的帮助!

4

1 回答 1

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从长远来看,这样做可能会导致一些奇怪的问题,因为 3rd 方扩展具有自定义管理路由(不以 /admin 为前缀)中断。所以请注意这一点。

我会提倡使用 Magento 扩展(基于 PHP),mod_geoip 存储切换器 - 这样您就可以使其仅适用于 Magento 存储的前端区域(以防止我上面描述的潜在错误)

于 2012-03-15T20:26:18.583 回答