我将以下代码添加到 .htaccess 文件中,以启用3天的缓存文件。之后我的网站不再可用了,我收到一条消息,告诉我这是内部服务器错误
代码:
# 3 DAYS
<FilesMatch "\.(html|css|js|gif|jpg|jpeg|png|ico|swf)$"> Header set Cache-Control "max-age=259200, proxy-revalidate" </FilesMatch>
消息:
内部服务器错误
服务器遇到内部问题 错误或错误配置,是 无法完成您的请求。
请与服务器联系 管理员,webmaster @ exampple.com 并告知他们错误的时间 发生了,你可能有任何东西 完成可能导致错误。
有关此错误的详细信息可能有效 在服务器错误日志中可用。
FilesMatch有什么问题或者还有什么可能导致内部服务器错误? 感谢
答案 0 :(得分:9)
我刚才有这个问题,您可以通过输入来解决 命令行中的“sudo a2enmod headers”
答案 1 :(得分:8)
这是另一种解决方案 http://diogomelo.net/node/24
要启用此模块,请以root身份登录,并创建从mods-available / headers.load到mods-enabled的符号链接。之后,重新加载apache并完成。为此,我使用了这个命令。
su -
cd /etc/apache2/mods-enabled/
ln -s ../mods-available/headers.load headers.load
sh /etc/init.d/apache2 force-reload
在该程序之后问题得以解决。
答案 2 :(得分:5)
必须在多行上,而不是全部在一行中。这个适用于我:
<FilesMatch "\.(html|css|js|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=259200, proxy-revalidate"
</FilesMatch>
答案 3 :(得分:0)
这是另一种可能的解决方案,在应用多行之后,执行此简单的可能解决方案。
问题:
您可能直接从网站,幻灯片演示或其他地方的示例代码中复制并粘贴了htaccess指令,这会导致文本编码格式出现问题。
解决方案:
再次复制代码,但这一次将其粘贴到简单的记事本或文本编辑器中,然后再次将其复制并粘贴到ataccess文件中。这样可以消除任何编码问题。
答案 4 :(得分:0)
返回错误 500 的另一个问题是您没有在 Apache conf 文件中正确启用 AllowOverride
指令。
示例:
<VirtualHost *:80>
ServerName yoursitename
DocumentRoot /var/www/html/site
<Directory /var/www/html/site>
Options -Indexes +FollowSymLinks +MultiViews
Require all granted
AllowOverride None
</Directory>
ErrorLog /var/log/apache2/error_site.log
在该示例中,有一个 AllowOverride none
可以阻止您可以进行的所有 .htaccess 修改。
您可以删除 AllowOverride None
或修改它,只允许您需要的指令。在您使用 AllowOverride FileInfo
放置的示例中就可以了。
有关 AllowOverride 指令的更多信息,请访问:https://httpd.apache.org/docs/2.4/es/mod/core.html#allowoverride