В помощь веб-разработчику

August 1st, 2007

Apache, mod_rewrite

Posted by admin in

Я надеюсь вопрос по адресу.
Возникла небольшая заминка с mod_rewrite:
В корневой директории есть .htaccess в котором mod_rewrite'ом преобразуются URLы вида somesite.zone/module/id/somevar/someval в somesite.zone/index.php?module=id&somevar=someval. С этим проблем нет:

RewriteRule ^([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)$ index.php?module=$1&id=$2&$3=$4

и далее по снизходящей…
Но проблема вот в чем: Имеется в том-же корневом каталоге некая папочка somesite.zone/somedir/. Очевидно что ее URL подпадает под правила преобразования

RewriteRule ^([A-Za-z0-9]+)/$ index.php?module=$1
RewriteRule ^([A-Za-z0-9]+)$ index.php?module=$1

Но мне нужно сделать так, что-бы эта папка была исключением!
Пытался сделать так:

RewriteRule ^somedir(.*) somedir$1
и так:
RewriteRule ^somedir/(?*) somedir/$1

Однако в таком случае получается так: Если URL будет вида somesite.zone/somedir получаю Internal Server Error (Вероятно от того что переписанный URL подпадает под следующие правила преобразования?), однако если URL будет вида somesite.zone/somedir/index.php то все нормально. Но для меня не допустим такой вариант. Все должно быть “как обычно”, т.е. при обращении к директории выдается DirectoryIndex или список файлов…

Подозреваю что это делетантский вопрос или частозадаваемый… Но по каким словам искать в гугле не смог придумать…