2012-03-15 49 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