Mod_rewrite - непонятки...

SergeyVorobiev

допустим, в .htacess пишем

RewriteEngine On

RewriteCond /%{REQUEST_FILENAME}/? !-f

RewriteRule ^([a-zA-Z0-9]+)\.html$ index.php?code=$1 [L,QSA]

По идее это должно означать, что если набираем test.html ,то если нет такого файла, то у нас будет index.php?code=test ... ОДнако когда файл test.html реально существует, то почему-то всё равно происходит редирект на index.php
Выходит
RewriteCond /%{REQUEST_FILENAME}/? !-f

тут что-то не так.. подскажите, где ошибка?

slonishka

ошибка в слешах?
RewriteCond %{REQUEST_FILENAME} !-f

так работает?

pitrik2

/%{REQUEST_FILENAME}/?
а что означают слеши по краям и знак вопроса?
%{REQUEST_FILENAME} - это же уже полный путь

SergeyVorobiev

Бачан, ты был прав, заработало.. во я дибил то.. СПАСИБА!

SergeyVorobiev

И еще у меня вопрос один: Почему не получается включить точку в квадратные скобки (я опять про модрерайт)? То есть [a-z] писать можно а [a-z\.] или [a-z.] - нельзя.. вернее шаблон то работает, но в самой веб-странице не работают например абсолютные пути: не подгружается ничего, заданное абсолютным путём..
например
RewriteRule ^([a-zA-Z0-9_/-]+)/?$ index.php?maincode=$1 [L,QSA]

работает
RewriteRule ^([a-zA-Z0-9\._/-]+)/?$ index.php?maincode=$1 [L,QSA]

НЕ работает

slonishka

загадка. должно работать без слеша.
точка в квадратных скобках не имеет сакрального смысла.
я так понял, регексп на точку срабатывает, но на страничке ответа не работают абсолютные пути?
а пример странички / пути есть?
Оставить комментарий
Имя или ник:
Комментарий: