Эта тема на forum.dklab.ru


mus: mod_rewrite
Народ, начал работу с mod_rewrite, возникает вопрос, который успел набить оскомину, а именно добавление слеша в конец адр. строки.

RewriteEngine On
RewriteBase /mod_rewrite/
#RewriteRule ^([^/]*)$ $1/ [R]
RewriteRule ^(.*)/$ index.php?name=$1

Делал следующее (4-ая строчка, про третью позже), если ввожу что-то, типа http://testing/mod_rewrite/mus/ - нормально преобразовывает в http://testing/mod_rewrite/index.php?name=mus и обрабатывает. Но хочется, для избежания всяких левых проблем также чтобы обрабатывалось http://testing/mod_rewrite/mus (ВНИМАНИЕ:БЕЗ_СЛЕША_НА_КОНЦЕ), а у меня выводится (я сделал вывод name) index.php

Видимо - рекурсия.

Решил я влепить ту самую третью строку, которую потом вовсе пришлось коментить. Тоесть дописать слеш, в случае совпадения с шаблоном, в котором слеша нет и перенаправить на эту страницу. Х там.. Не работает.

Вот и ломаю голову, может кто подскажет как такое реализовать, замучал слеш =(?
amikhailov:
RewriteRule ^(.*)/?$ index.php?name=$1
mus:
Спасибо, НЕ работает (=
Не зная квантора "?" я бы вряд ли стал вообще сим заниматься.
Это я все пробовал.
Тока не пашет...
amikhailov:
Вот мой работающий код.
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([A-Za-z0-9\-_]+)/?$ file.php?query=$1 [QSA,L]
amikhailov:
Ну в самом крайнем случае сделайте так:
RewriteRule ^(.*)$ index.php?name=$1 [L]
RewriteRule ^(.*)/$ index.php?name=$1 [L]

Эта тема на forum.dklab.ru