Я пытаюсь создать перенаправление и кеширование с файлом .htaccess. Вот мой код:.htaccess генерирует статус ошибки 500
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
<ifModule mod_headers.c>
ExpiresActive On
ExpiresDefault A86400
<FilesMatch "\.(ico|gif|jpg|jpeg\png|flv|pdf|swf|mov|mp3|wmv|ppt)$">
ExpiresDefault A1814400
Header append Cache-Control "public"
</FilesMatch>
<FilesMatch "\.(xml|txt|html)$">
ExpiresDefault A259200
Header append Cache-Control "proxy-revalidate"
</FilesMatch>
<FilesMatch "\.(js|css)$>
ExpiresDefault A10800
Header append Cache-Control "proxy-revalidate"
</FilesMatch>
<FilesMatch "\.(php|cgi|pl)$">
ExpiresDefault A0
Header set Cache-Control "no-store, no-cache, must revalidate, max-age=0"
Header set Pragma "no-cache"
</FilesMatch>
</ifModule>
<ifModule mod_deflate.c>
<FilesMatch "\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)(\.gz)?$">
Header unset ETag
FileETag None
</FilesMatch>
Если удалить все кэширование, и оставить только первые три строки, он отлично работает, но без кэширования:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Что я делаю не так?
Просмотрите файл журнала ошибок http-серверов. Здесь записываются ошибки во время выполнения. Нет смысла пытаться _guess_, что такое ошибка _might_, если вы можете просто прочитать ее. – arkascha
Ошибка в этой ошибке в журнале ошибок –
. Статус http 500, безусловно, создаст запись в файле журнала ошибок. Может быть, вы смотрите на неправильный файл? Имейте в виду, что существуют разные типы файлов журналов, а также могут быть несколько файлов журнала ошибок, например, для отдельных узлов внутри вашего HTTP-сервера. – arkascha