Условное правило перезаписи htaccess с помощью mod_GeoIP - PullRequest
1 голос
/ 27 января 2012

Я использую mod_geoip для своего сайта электронной коммерции, чтобы перенаправить клиентов из Австралии в другую витрину на том же сервере. Магазин находится в root / store /, и я хочу, чтобы они были перенаправлены в root / austore /

Я понял, что базовая перезапись работает безупречно, но я хочу, чтобы структура URL была такой же. Например, если кто-то нажимает на ссылку root / store / category / product / и живет за границей, я хочу, чтобы он был перенаправлен на root / austore / category / product /, поскольку структура файлов одинакова для обоих магазинов. Как и сейчас, если они нажмут на эту ссылку, он перенаправит их только на основной root / austore /.

Вот правило перезаписи, как оно есть сейчас.

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^AU$
RewriteRule ^([^/]+)$ /austore/ [L]

Редактируемый файл .htaccess находится в каталоге store /.

Любая помощь будет принята с благодарностью. Спасибо!

Allan

1 Ответ

1 голос
/ 27 января 2012

Попробуйте

#skip processing /store/skin/ directory
RewriteRule ^store/skin/  - [L,NC] 

#if they live overseas i.e not Australia
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^AU$
#if someone clicks on a link that is root/store/category/product/ 
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC] 
#I want them to be redirected to root/austore/category/product/ 
RewriteRule ^ /austore%1 [L,R]
...