2012-01-26 2 views
1

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

У меня получилось, что основной переписывать работает безупречно, но я хочу, чтобы структура 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

Попробуйте

#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] 
+0

Это работало отлично. Спасибо за помощь! – coloradohiker

+0

Следуйте моему первоначальному вопросу. У меня есть css, изображения и javascript пути, которые ссылаются на исходный каталог root/store/skin. С переходом htaccess на место он переписывал эти пути в root/ukstore/skin, которых не существует, и он разбивал все эти ссылки. Есть ли способ переписать url на место, но оставить пути к каталогу кожи нетронутыми? – coloradohiker

+0

@coloradohiker см. Править, чтобы пропустить '/ store/skin/directory' –

Смежные вопросы