Помогите составить RewriteRule, плз.

akxxiv

Новичок
Помогите составить RewriteRule, плз.

На сервере есть директория /downloads/ в которой лежит файл index.php.
Нужно чтобы при обращении к любому файлу в этой директории кроме index.php, запрос был переадресован на index.php?file=запрашиваемый_файл.
Т.е. при запросе /downloads/smth.pdf => /downloads/index.php?file=smth.pdf

До сего момента использовал это:
PHP:
RewriteRule ^downloads/(.+).(xls|csv|doc|rtf)$ /downloads/index.php?file=$1.$2 [L]
Но этот вариант ограничен.
Побывал
PHP:
RewriteRule ^download/(.+)$ /download/index.php?file=$1 [L]
Не работает. Как это сделать???
 

white phoenix

Новичок
> Переадресован
Переписан не, а не переадресован.
> Как это сделать???
.htaccess в папке downloads:
RewriteRule ^(.+)(xsl|csv|doc|rtf)$ index.php?file=$1$2 [L]

-~{}~ 18.01.06 15:24:

А вообще, перечислять расширения файлов нет смысла, если нужно переадресовать все кроме index.php, простое решение:
RewriteCond %{REQUEST_FILENAME} !index.php$
RewriteRule ^(.+)$ index.php?file=$1 [L]
 

akxxiv

Новичок
Я не хочу, чтобы было явно указано какие файлы должны быть переписаны. Нужно, чтобы все файлы в этой папке кроме самого index.php переписывались в виде index.php?file=любой_файл_кроме_index.php
 

white phoenix

Новичок
RewriteCond по религиозным соображениям не используешь? Как именно, я написал двумя постами выше.
 

romy4

invoke [brain]
не забудь добавить флаг QSA в RewriteCond инача обрежешь все запросы методом GET
 

white phoenix

Новичок
romy4
Т.е. ты хочешь сказать что GET-запросы не работают без флага [QSA]? Проверил, работает и без него.
 

romy4

invoke [brain]
white phoenix у меня не работало. не знаю. но лучше добавить

-~{}~ 18.01.06 15:41:

приходилось писать типа blabla/path/&my=query
 
Сверху