Apache: примените правила к URL, прежде чем они будут переписаны - PullRequest
0 голосов
/ 17 декабря 2010

У меня есть простое RewriteRule:

RewriteRule ^/r/[0-9]+/(.*)$ /$1

Это используется для очистки кэша.С каждым выпуском веб-сайта я меняю префикс URL, например:

/r/17/img/image.jpg получает /img/image.jpg.

Я хочу применить к ним заголовки с длинным сроком действия, например

<Directory /r>
  Header unset ETag
  FileETag None
  ExpiresDefault "access plus 1 year"
</Directory>

Конечно, это не работает, потому что после применения RewriteRule каталог больше не совпадает.Как я могу применить эти правила в директиве Directory к URL-адресам, доступным через /r/?

Спасибо!

1 Ответ

3 голосов
/ 17 декабря 2010

Директива <Directory> предназначена для существующих существующих каталогов, а не только для URL-путей. Попробуйте <LocationMatch> вместо:

<LocationMatch "^/r(/|$)">
  Header unset ETag
  FileETag None
  ExpiresDefault "access plus 1 year"
</LocationMatch>

Или измените /r на ваш фактический каталог /img.

...