.htaccess没有效果,也没有发送过期标题

时间:2016-10-20 00:33:04

标签: apache .htaccess

我在网站根文件夹.htaccess中添加了/var/www/html个文件 看起来像这样

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

我尝试调整AllowOverride选项,正如许多地方所推荐的那样。 我的/etc/apache2/sites-available/000-default.conf文件看起来像这样

<VirtualHost *:80>
    <Directory /var/www/html>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
...
</VirtualHost *:80>

/etc/apache2/apache2.conf看起来像这样

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

我非常确定.htaccess文件无法正常工作,因为当我向文件中添加随机字符时(尝试打破它并获得500 HTTP响应)它不会t根本影响网站。 可能是什么导致了这个?

1 个答案:

答案 0 :(得分:0)

到期信息由expires模块创建和发送。根据这一点,.htaccess正确地检查了该模块的存在。如果没有加载,则不采取任何措施。

确保模块已正确加载,目前最兼容的方式是使用a2enmod

:~ $ a2enmod expires