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 выдается содержимое этих файлов. Может есть пути проще?

А переименовать файлы "style.css?id=4" камасутра не позволяет?
sdio ★★★★★
()
да. Проще - переименовать.

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

OldFornit
()
Ответ на: комментарий от amgorb
>да там переименовывать огого сколько..

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

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

Проверь, может какой из ? надо заэкранировать
sdio ★★★★★
()
Ответ на: комментарий от amgorb
> как автопереименовать ссылки во флешовых swf?
mod_rewrite-ом :-)
spirit ★★★★★
()
Я фигею с ответом. Читайте RFC на URI и URL. "?" - зарезервированный символ. Чтобы его использовать в пути, его нужно экранировать "%3f".
sergio_nsk
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.