2010-07-30 1 views
0

в моем .htaccess файл я следующийперезаписи URL проблемы

Options -Indexes 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)/(.*)$ index.php?lang=$1&id=$2 [L] 

так, когда я писал http://mydomain.com/am/home он будет перенаправлен на http://mydomain.com?lang=am&id=home


, но у меня есть папка cms, и мне нужно перейти к

http://mydomain.com/cms/index.php когда написано

http://mydomain.com/cms но этого не происходит.

что я могу сделать?

Благодаря

ответ

1

Добавить RewriteCond:

RewriteCond $1 !=cms 
RewriteRule ^(.*)/(.*)$ index.php?lang=$1&id=$2 [B,L] 

Когда вы идете в /cms, Apache, вероятно, делает 301 в /cms/, поэтому ваше правило перезаписи будет совпадение. Это позволит избежать соответствия /cms/.

+0

Отлично. Большое спасибо. но в этом случае $ 1 в RewriteCond относится только к следующему RewriteRule? а как насчет iif, у меня много Rewriterules? – Simon

+0

@Syom Да, только следующий. Если вам нужно для многих, попробуйте поставить это перед другими: 'RewriteRule cms/- [L]'. Последний (L) останавливает раунд замен. – Artefacto

0

Добавить:

RewriteRule ^(.*)/?$ $1/index.php [L]

+0

он возвращает 500 ошибка. – Simon

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