.htaccess переписывает URL из подкаталога - PullRequest
1 голос
/ 18 сентября 2011

У меня есть записи в моем .htaccess, которые выглядят так:

RewriteRule ^$ dubai/ [R]
RewriteRule ^dubai/$ page/index.php [L]
RewriteRule ^$ pakistan/ [R]
RewriteRule ^pakistan/$ page/index.php [L]

В основном я хочу создать правило, которое может обрабатывать страны как часть переписывания, приведенный выше код избыточен и может привести к ненужному росту файла.

Есть ли способ автоматически перенаправить страницу на page/index.php, если она подходит для каких-либо стран? Я попытался поместить эту строку в последнюю строку выше:

RewriteRule ^([a-zA-Z\/]*)/$ page/index.php

Моя проблема в том, что он больше не читает последующие правила для других страниц. Нижеследующие строки представляют собой примеры правил чуть ниже последнего из приведенных выше:

RewriteRule ^([a-zA-Z\/]*)rent/$ page/index.php?methodcall=rent&for=Rent
RewriteRule ^([a-zA-Z\/]*)landlords/$ page/index.php?methodcall=landlords

Что происходит, когда get vars больше не читаются файлом index.php, если я удаляю последнюю перезаписываемую информацию, ключ vars читается правильно.

Есть предложения?

Заранее спасибо!

1 Ответ

4 голосов
/ 18 сентября 2011

Попробуйте это:

RewriteEngine on

RewriteRule ^([a-z]+)(\/?)$ page/index.php [NC,QSA,L]
RewriteRule ^([a-z]+)/rent(\/?)$ page/index.php?methodcall=rent&for=Rent [NC,QSA,L]
RewriteRule ^([a-z]+)/landlords(\/?)$ page/index.php?methodcall=landlords [NC,QSA,L]
...