LINUX.ORG.RU
ФорумAdmin

Как заставить apache отдавать файлы вида style.css?id=2


0

0

Всем привет.

Есть такая ситуация:

В файловой системе (Unix) есть много файлов вида:
/doc_root/style.css?id=2
/doc_root/style.css?id=3
/doc_root/style.css?id=4

т.е файл в файловой системе имеет название "style.css?id=4"
Апач соотвественно воспринимает запросы вида server.ru/style.css?id=4 как вызов файла style.css с параметром id равным 4. Можно как-нибудь что-нибудь сделать, чтобы этого не происходило и он отдавал этот файл?
Пытался через mod_rewrite - не получается.. получилось сделать через супер извратский механизм:

RewriteRule ^(.*)$ /home/www/index.php?RequestUrl=$1 [L,QSA]
и в этом php файле через readfile_chunked выдается содержимое этих файлов. Может есть пути проще?

Re: Как заставить apache отдавать файлы вида style.css?id=2

А переименовать файлы "style.css?id=4" камасутра не позволяет?

sdio ★★★★★ ()

Re: Как заставить apache отдавать файлы вида style.css?id=2

да. Проще - переименовать.

такой механизм, как у вас, используется при принудительном кешировании стилевки на стороне клиента и служит для оповещения клиента о том, что файл изменился.

OldFornit ()

Re: Как заставить apache отдавать файлы вида style.css?id=2

да там переименовывать огого сколько.. видимо придется

amgorb ()

Re: Как заставить apache отдавать файлы вида style.css?id=2

>да там переименовывать огого сколько..

Не руками ведь

find /dir -type f -name '*.css?id=*' -exec rename 'y/?/_/'

Проверь, может какой из ? надо заэкранировать

sdio ★★★★★ ()

Re: Как заставить apache отдавать файлы вида style.css?id=2

Я фигею с ответом. Читайте RFC на URI и URL. "?" - зарезервированный символ. Чтобы его использовать в пути, его нужно экранировать "%3f".

sergio_nsk ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.