Помогите с mod_rewrite!

vmaximov777

Новичок
Помогите с mod_rewrite!

В корне локального сервера у меня есть папочка
http:\\localhost\\test\
В ней я создал .htaccess c таким содержимым:

RewriteEngine on
Options +FollowSymLinks


RewriteRule ^([/]?)$ a.php [NC,L]


RewriteRule ^(ua|eng)[/]?$ b.php [NC,L]


RewriteRule ^([^/]+)[/]?$ c.php [NC,L]

Когда я комментирую третью строку то

При переходе по адресу http://localhost/test/ получаю http://localhost/test/a.php

При переходе по адресу http://localhost/test/ua/ получаю http://localhost/test/b.php

Но когда оставляю 3 правило не закоментированым то получаю в результате
http://localhost/test/с.php

В чем прикол?

Всем спасибо.
 

MiksIr

miksir@home:~$
Поковырялся - фигня в том, что после отработки верного правила происходит внутренний редирект (на a.php к примеру), после которого все правила отрабатывают еще раз (и срабатывает 3-е правило). Last флаг тут не поможет, ибо это как-бы разные процессы реврайтинга. В общем, можешь просто включить реврайт-лог и все станет понятно.
Перепиши правила так:

RewriteRule ^$ a.php
RewriteRule ^(ua|eng)/?$ b.php
RewriteRule ^[^.]+/?$ c.php
 

vmaximov777

Новичок
Поковырялся - фигня в том, что после отработки верного правила происходит внутренний редирект (на a.php к примеру), после которого все правила отрабатывают еще раз (и срабатывает 3-е правило). Last флаг тут не поможет, ибо это как-бы разные процессы реврайтинга. В общем, можешь просто включить реврайт-лог и все станет понятно.
Спасибо за подсказку. Я не знал про rewrite log . Теперь буду копать :)
 
Сверху