2015-04-02 117 views
0

我已經配置Apache mod_expire,如下所述,但它沒有工作。apache mod_expire不工作

我在.htaccess文件中加入此塊: ExpiresActive On配置 ExpiresDefault A900 ExpiresByType text/html的A1800 ExpiresByType文/ CSS A604800 ExpiresByType文/ JavaScript的A604800 ExpiresByType文/ JavaScript的A604800 ExpiresByType文本/ X- JSON A604800 ExpiresByType圖像/ GIF A2419200 ExpiresByType圖像/ PNG A2419200 ExpiresByType圖像/ JPG A2419200

我曾嘗試更換符號s的A2419200與texrt「允許加1個mounth」但這也行不通。

我也試着從.htaccess文件切斷這部分與塞弗它單獨的文件expire.conf並保存在目錄conf.d - 也沒有工作

如果我註釋塊

我有500錯誤,但命令的httpd -M(已加載的模塊的列表)表示:

Loaded Modules: 
core_module (static) 
mpm_prefork_module (static) 
http_module (static) 
so_module (static) 
auth_basic_module (shared) 
auth_digest_module (shared) 
authn_file_module (shared) 
authn_alias_module (shared) 
authn_anon_module (shared) 
authn_dbm_module (shared) 
authn_default_module (shared) 
authz_host_module (shared) 
authz_user_module (shared) 
authz_owner_module (shared) 
authz_groupfile_module (shared) 
authz_dbm_module (shared) 
authz_default_module (shared) 
include_module (shared) 
log_config_module (shared) 
logio_module (shared) 
env_module (shared) 
ext_filter_module (shared) 
mime_magic_module (shared) 
expires_module (shared) 
deflate_module (shared) 
headers_module (shared) 
usertrack_module (shared) 
setenvif_module (shared) 
mime_module (shared) 
dav_module (shared) 
status_module (shared) 
autoindex_module (shared) 
info_module (shared) 
dav_fs_module (shared) 
vhost_alias_module (shared) 
negotiation_module (shared) 
dir_module (shared) 
actions_module (shared) 
speling_module (shared) 
userdir_module (shared) 
alias_module (shared) 
substitute_module (shared) 
rewrite_module (shared) 
proxy_module (shared) 
proxy_balancer_module (shared) 
proxy_ftp_module (shared) 
proxy_http_module (shared) 
proxy_ajp_module (shared) 
proxy_connect_module (shared) 
cache_module (shared) 
suexec_module (shared) 
disk_cache_module (shared) 
cgi_module (shared) 
version_module (shared) 
perl_module (shared) 
php5_module (shared) 
python_module (shared) 
ssl_module (shared) 
Syntax OK 

所以mod_expire被加載。

我做錯了什麼?

我的httpd.conf文件(我已刪除評論):

ServerTokens OS 

ServerRoot "/etc/httpd" 

PidFile run/httpd.pid 

Timeout 60 

KeepAlive Off 

MaxKeepAliveRequests 100 

KeepAliveTimeout 5 

<IfModule prefork.c> 
StartServers  8 
MinSpareServers 5 
MaxSpareServers 20 
ServerLimit  256 
MaxClients  256 
MaxRequestsPerChild 4000 
</IfModule> 

StartServers   4 
MaxClients   300 
MinSpareThreads  25 
MaxSpareThreads  75 
ThreadsPerChild  25 
MaxRequestsPerChild 0 
</IfModule> 

#Listen 12.34.56.78:80 
Listen 80 

LoadModule auth_basic_module modules/mod_auth_basic.so 
LoadModule auth_digest_module modules/mod_auth_digest.so 
LoadModule authn_file_module modules/mod_authn_file.so 
LoadModule authn_alias_module modules/mod_authn_alias.so 
LoadModule authn_anon_module modules/mod_authn_anon.so 
LoadModule authn_dbm_module modules/mod_authn_dbm.so 
LoadModule authn_default_module modules/mod_authn_default.so 
LoadModule authz_host_module modules/mod_authz_host.so 
LoadModule authz_user_module modules/mod_authz_user.so 
LoadModule authz_owner_module modules/mod_authz_owner.so 
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so 
LoadModule authz_dbm_module modules/mod_authz_dbm.so 
LoadModule authz_default_module modules/mod_authz_default.so 
LoadModule include_module modules/mod_include.so 
LoadModule log_config_module modules/mod_log_config.so 
LoadModule logio_module modules/mod_logio.so 
LoadModule env_module modules/mod_env.so 
LoadModule ext_filter_module modules/mod_ext_filter.so 
LoadModule mime_magic_module modules/mod_mime_magic.so 
**LoadModule expires_module modules/mod_expires.so** 
LoadModule deflate_module modules/mod_deflate.so 
LoadModule headers_module modules/mod_headers.so 
LoadModule usertrack_module modules/mod_usertrack.so 
LoadModule setenvif_module modules/mod_setenvif.so 
LoadModule mime_module modules/mod_mime.so 
LoadModule dav_module modules/mod_dav.so 
LoadModule status_module modules/mod_status.so 
LoadModule autoindex_module modules/mod_autoindex.so 
LoadModule info_module modules/mod_info.so 
LoadModule dav_fs_module modules/mod_dav_fs.so 
LoadModule vhost_alias_module modules/mod_vhost_alias.so 
LoadModule negotiation_module modules/mod_negotiation.so 
LoadModule dir_module modules/mod_dir.so 
LoadModule actions_module modules/mod_actions.so 
LoadModule speling_module modules/mod_speling.so 
LoadModule userdir_module modules/mod_userdir.so 
LoadModule alias_module modules/mod_alias.so 
LoadModule substitute_module modules/mod_substitute.so 
LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
LoadModule proxy_connect_module modules/mod_proxy_connect.so 
LoadModule cache_module modules/mod_cache.so 
LoadModule suexec_module modules/mod_suexec.so 
LoadModule disk_cache_module modules/mod_disk_cache.so 
LoadModule cgi_module modules/mod_cgi.so 
LoadModule version_module modules/mod_version.so 

Include conf.d/*.conf 


User apache 
Group apache 


ServerAdmin [email protected] 

UseCanonicalName Off 

DocumentRoot "/var/www/html" 

<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
</Directory> 

<Directory "/var/www/html"> 
    Options Indexes FollowSymLinks 

# 
# AllowOverride controls what directives may be placed in .htaccess files. 
# It can be "All", "None", or any combination of the keywords: 
# Options FileInfo AuthConfig Limit 
# 
    AllowOverride None 

# 
# Controls who can get stuff from this server. 
# 
    Order allow,deny 
    Allow from all 

</Directory> 


<IfModule mod_userdir.c> 
    # 
    # UserDir is disabled by default since it can confirm the presence 
    # of a username on the system (depending on home directory 
    # permissions). 
    # 
    UserDir disabled 

    # 
    # To enable requests to /~user/ to serve the user's public_html 
    # directory, remove the "UserDir disabled" line above, and uncomment 
    # the following line instead: 
    # 
    #UserDir public_html 

</IfModule> 


DirectoryIndex index.html index.html.var 


AccessFileName .htaccess 


<Files ~ "^\.ht"> 
    Order allow,deny 
    Deny from all 
    Satisfy All 
</Files> 


TypesConfig /etc/mime.types 


DefaultType text/plain 

<IfModule mod_mime_magic.c> 
# MIMEMagicFile /usr/share/magic.mime 
    MIMEMagicFile conf/magic 
</IfModule> 

HostnameLookups Off 

ErrorLog logs/error_log 

LogLevel warn 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %b" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

CustomLog logs/access_log combined 

ServerSignature On 
Alias /icons/ "/var/www/icons/" 

<Directory "/var/www/icons"> 
    Options Indexes MultiViews FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

<IfModule mod_dav_fs.c> 
    # Location of the WebDAV lock database. 
    DAVLockDB /var/lib/dav/lockdb 
</IfModule> 

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 

<Directory "/var/www/cgi-bin"> 
    AllowOverride None 
    Options None 
    Order allow,deny 
    Allow from all 
</Directory> 

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8 

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip 

AddIconByType (TXT,/icons/text.gif) text/* 
AddIconByType (IMG,/icons/image2.gif) image/* 
AddIconByType (SND,/icons/sound2.gif) audio/* 
AddIconByType (VID,/icons/movie.gif) video/* 

AddIcon /icons/binary.gif .bin .exe 
AddIcon /icons/binhex.gif .hqx 
AddIcon /icons/tar.gif .tar 
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv 
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip 
AddIcon /icons/a.gif .ps .ai .eps 
AddIcon /icons/layout.gif .html .shtml .htm .pdf 
AddIcon /icons/text.gif .txt 
AddIcon /icons/c.gif .c 
AddIcon /icons/p.gif .pl .py 
AddIcon /icons/f.gif .for 
AddIcon /icons/dvi.gif .dvi 
AddIcon /icons/uuencoded.gif .uu 
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl 
AddIcon /icons/tex.gif .tex 
AddIcon /icons/bomb.gif core 

AddIcon /icons/back.gif .. 
AddIcon /icons/hand.right.gif README 
AddIcon /icons/folder.gif ^^DIRECTORY^^ 
AddIcon /icons/blank.gif ^^BLANKICON^^ 

DefaultIcon /icons/unknown.gif 


ReadmeName README.html 
HeaderName HEADER.html 

# 
# IndexIgnore is a set of filenames which directory indexing should ignore 
# and not include in the listing. Shell-style wildcarding is permitted. 
# 
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 

AddLanguage ca .ca 
AddLanguage cs .cz .cs 
AddLanguage da .dk 
AddLanguage de .de 
AddLanguage el .el 
AddLanguage en .en 
AddLanguage eo .eo 
AddLanguage es .es 
AddLanguage et .et 
AddLanguage fr .fr 
AddLanguage he .he 
AddLanguage hr .hr 
AddLanguage it .it 
AddLanguage ja .ja 
AddLanguage ko .ko 
AddLanguage ltz .ltz 
AddLanguage nl .nl 
AddLanguage nn .nn 
AddLanguage no .no 
AddLanguage pl .po 
AddLanguage pt .pt 
AddLanguage pt-BR .pt-br 
AddLanguage ru .ru 
AddLanguage sv .sv 
AddLanguage zh-CN .zh-cn 
AddLanguage zh-TW .zh-tw 

LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW 

ForceLanguagePriority Prefer Fallback 

AddDefaultCharset UTF-8 

AddType application/x-compress .Z 
AddType application/x-gzip .gz .tgz 

AddType application/x-x509-ca-cert .crt 
AddType application/x-pkcs7-crl .crl 


AddHandler type-map var 


AddType text/html .shtml 
AddOutputFilter INCLUDES .shtml 


Alias /error/ "/var/www/error/" 

<IfModule mod_negotiation.c> 
<IfModule mod_include.c> 
    <Directory "/var/www/error"> 
     AllowOverride None 
     Options IncludesNoExec 
     AddOutputFilter Includes html 
     AddHandler type-map var 
     Order allow,deny 
     Allow from all 
     LanguagePriority en es de fr 
     ForceLanguagePriority Prefer Fallback 
    </Directory> 

</IfModule> 
</IfModule> 

BrowserMatch "Mozilla/2" nokeepalive 
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 
BrowserMatch "RealPlayer 4\.0" force-response-1.0 
BrowserMatch "Java/1\.0" force-response-1.0 
BrowserMatch "JDK/1\.0" force-response-1.0 


BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully 
BrowserMatch "MS FrontPage" redirect-carefully 
BrowserMatch "^WebDrive" redirect-carefully 
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully 
BrowserMatch "^gnome-vfs/1.0" redirect-carefully 
BrowserMatch "^XML Spy" redirect-carefully 
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully 

我的.htaccess文件:

php_value memory_limit 64M 
# ---------------------------------------------------------------------- 
# Webfont access 
# ---------------------------------------------------------------------- 

# Allow access from all domains for webfonts. 
# Alternatively you could only whitelist your 
# subdomains like "subdomain.example.com". 

<IfModule mod_headers.c> 
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$"> 
    Header set Access-Control-Allow-Origin "*" 
    </FilesMatch> 
</IfModule> 

<ifModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault A900 
    ExpiresByType text/html A1800 
    ExpiresByType text/css A604800 
    ExpiresByType text/javascript A604800 
    ExpiresByType text/javascript A604800 
    ExpiresByType text/x-json A604800 
    ExpiresByType image/gif A2419200 
    ExpiresByType image/png A2419200 
    ExpiresByType image/jpg A2419200 
</ifModule> 


<FilesMatch "\.(?i:pdf)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

SetEnvIf Request_URI "\.pdf$" requested_pdf=pdf 
Header add Content-Disposition "attachment" env=requested_pdf 

# ---------------------------------------------------------------------- 
# Proper MIME type for all files 
# ---------------------------------------------------------------------- 

    # JavaScript 
    # Normalize to standard type (it's sniffed in IE anyways) 
    # tools.ietf.org/html/rfc4329#section-7.2 
    AddType application/javascript   js 

    # Audio 
    AddType audio/ogg      oga ogg 
    AddType audio/mp4      m4a 

    # Video 
    AddType video/ogg      ogv 
    AddType video/mp4      mp4 m4v 
    AddType video/webm      webm 

    # SVG 
    # Required for svg webfonts on iPad 
    # twitter.com/FontSquirrel/status/14855840545 
    AddType  image/svg+xml    svg svgz 
    AddEncoding gzip      svgz 

    # Webfonts 
    AddType application/vnd.ms-fontobject eot 
    AddType application/x-font-ttf   ttf ttc 
    AddType font/opentype     otf 
    AddType application/x-font-woff  woff 

    # Assorted types 
    AddType image/x-icon      ico 
    AddType image/webp       webp 
    AddType text/cache-manifest     appcache manifest 
    AddType text/x-component     htc 
    AddType application/xml      rss atom xml rdf 
    AddType application/x-chrome-extension  crx 
    AddType application/x-opera-extension  oex 
    AddType application/x-xpinstall    xpi 
    AddType application/octet-stream   safariextz 
    AddType application/x-web-app-manifest+json webapp 
    AddType text/x-vcard      vcf 

# ---------------------------------------------------------------------- 
# Gzip compression 
# ---------------------------------------------------------------------- 

<IfModule mod_deflate.c> 

    # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/ 
    <IfModule mod_setenvif.c> 
    <IfModule mod_headers.c> 
     SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding 
     RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding 
    </IfModule> 
    </IfModule> 

    # HTML, TXT, CSS, JavaScript, JSON, XML, HTC: 
    <IfModule filter_module> 
    FilterDeclare COMPRESS 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $image/x-icon 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf 
    FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype 
    FilterChain  COMPRESS 
    FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no 
    </IfModule> 

    <IfModule !mod_filter.c> 
    # Legacy versions of Apache 
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component 
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml 
    AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype 
    </IfModule> 

</IfModule> 

# ---------------------------------------------------------------------- 
# Start rewrite engine 
# ---------------------------------------------------------------------- 

# Turning on the rewrite engine is necessary for the following rules and features. 
# FollowSymLinks must be enabled for this to work. 

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks -Indexes 
    RewriteEngine On 

    # If you installed Bonfire in a subfolder, you will need to 
    # change the following line to match the subfolder you need. 
    # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase 
    RewriteBase/

    #Removes access to the system folder by users. 
    #Additionally this will allow you to create a System.php controller, 
    #previously this would not have been possible. 
    #'system' can be replaced if you have renamed your system folder. 
    RewriteCond %{REQUEST_URI} ^bonfire/codeigniter.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 
</IfModule> 

# Rewrite "www.example.com -> example.com" 

<IfModule mod_rewrite.c> 
    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
    RewriteRule^http://%1%{REQUEST_URI} [R=301,L] 
</IfModule> 



#Checks to see if the user is attempting to access a valid file, 
#such as an image or css document, if this isn't true it sends the 
#request to index.php 

<IfModule mod_rewrite.c> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

# ---------------------------------------------------------------------- 
# UTF-8 encoding 
# ---------------------------------------------------------------------- 

# Use UTF-8 encoding for anything served text/plain or text/html 
AddDefaultCharset utf-8 

# Force UTF-8 for a number of file formats 
AddCharset utf-8 .css .js .xml .json .rss .atom 

# Block access to "hidden" directories whose names begin with a period. This 
# includes directories used by version control systems such as Subversion or Git. 
<IfModule mod_rewrite.c> 
    RewriteCond %{SCRIPT_FILENAME} -d 
    RewriteCond %{SCRIPT_FILENAME} -f 
    RewriteRule "(^|/)\." - [F] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    # If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    # Submitted by: ElliotHaughin 

    ErrorDocument 404 index.php 
</IfModule> 

回答

0

如果我沒有記錯的話,你需要把從的AllowOverride改變「無」到‘在httpd.conf文件索引’:

<Directory "/var/www/html"> 
    Options Indexes FollowSymLinks 

# 
# AllowOverride controls what directives may be placed in .htaccess files. 
# It can be "All", "None", or any combination of the keywords: 
# Options FileInfo AuthConfig Limit 
# 
    AllowOverride None 

# 
# Controls who can get stuff from this server. 
# 
    Order allow,deny 
    Allow from all 

</Directory> 

按照該docs,指定mod_expires需要奧雅納索引的索引:

Description: Enables generation of Expires headers 
Syntax: ExpiresActive On|Off 
Default: ExpiresActive Off 
Context: server config, virtual host, directory, .htaccess 
Override: Indexes 
Status: Extension 
Module: mod_expires