parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Снова вопрос по Rewrite

Hex 22.04.2006 22:01 / 22.04.2006 23:35

Здравствуйте, возникла проблема:

В файле .htaccess в корне веб-пространства код:
RewriteEngine On

RewriteBase /

# физический(реальный) путь /authors/?name=pupkin
# для красоты делаю ссылку /authors/pupkin/
RewriteRule ^authors/([^/]+)/$ /authors/?name=$1

# физ. путь /authors/gbook/?name=pupkin
# а делаю ссылку /authors/pupkin/gbook/
RewriteRule ^authors/([^/]+)/gbook/$ /authors/gbook/?name=$1
Проблема:
Первое правило срабатывает, а второе нет.
Т.е. в итоге на самом деле не происходит входа в реальный каталог /authors/gbook/
При нажатии ссылки /authors/pupkin/gbook/ обработка производится в каталоге /authors/ , а не в /authors/gbook/

Во втором правиле ведь подставляется /authors/gbook/?name=$1 – т.е., получается, должен происходить вход в каталог gbook, но почему-то не заходит...


Вот такой код работает:
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^authors/([^/]+)/$ /authors/?name=$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^authors/([^/]+)/gbook/$ /authors/gbook/?name=$1
Но неужели в моем случае нельзя обойтись без RewriteCond?
Мне кажется его использование здесь можно избежать, если можно – то каким образом, а если нет – то можно ли упростить работающий код?

  • Снова вопрос по Rewrite, Hex 22.04.2006 22:01 / 22.04.2006 23:35