Apache с использованием mod_rewrite и FilesMatch - PullRequest
0 голосов
/ 03 января 2011

В моем файле .htaccess есть:

<FilesMatch "\.(js|css|png|gif|jpg)$">
<IfModule mod_headers.c>
Header set Cache-Control "public, max-age=31536000"
Header set Expires "A31536000"
</IfModule>
</FilesMatch>

У меня также есть перезапись для /forum-js/forum.js -> /wp-content/plugins/forum/js/forum.js.php, это единственный файл, который должен соответствовать приведенному выше регулярному выражениюПо какой-то причине все другие ресурсы, соответствующие этому регулярному выражению, имеют заголовки, которые включают Cache-Control и Expires, но этого нет.Это потому что это переписанный URL?

Ответы [ 2 ]

3 голосов
/ 03 января 2011

Это потому, что это переписанный URL?

Да, согласно вашему комментарию, его реальное расширение - .php, и действуют правила, связанные с этим расширением.

Самый простой способ - отправить заголовки из скрипта PHP:

<? header("Cache-Control: public, max-age=31536000");
   header("Expires : pA31536000");
2 голосов
/ 03 января 2011

Вы также можете использовать mod_expires вместо:

<IfModule mod_expires.c>
    <FilesMatch "\.(js|css|png|gif|jpg)$">
        ExpiresDefault A31536000
    </FilesMatch>
</IfModule>

Он также работает с типами носителей MIME вместо расширений имен файлов:

<IfModule mod_expires.c>
    ExpiresByType application/javascript A31536000
    ExpiresByType text/css A31536000
    ExpiresByType image/png A31536000
    ExpiresByType image/gif A31536000
    ExpiresByType image/jpeg A31536000
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...