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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.