2017-10-17 60 views
0

我使用.htaccess來緩存我的圖像,JS和CSS文件在我的網站的前端。 該網站笨2.htaccess禁用特定URL緩存

這裏是我的代碼下建造:

RewriteEngine on 

#RewriteRule ^index\.php/[R=301] 

RewriteCond %{THE_REQUEST} index\.php 
RewriteRule ^index.php(?:/(.*))?$ https://www.mywebsite.com/$1 [R=301,L] 


RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond $1 !^(index\.php|resources|robots\.txt) 
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

#Compression Gzip 
<IfModule mod_deflate.c> 
AddOutputFilterByType DEFLATE application/x-javascript application/javascript 
text/javascript text/css text/html text/xml 
</IfModule> 

# Cache One month for most static assets 
<filesMatch ".(jpg|jpeg|png|gif|ico)$"> 
Header set Cache-Control "max-age=2628000, public" 
</filesMatch> 

#Force la redirection vers www. 
#RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com$ [NC] 
#RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ 
#RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ 
#RewriteRule .? https://www.mywebsite.com%{REQUEST_URI} [R=301,L] 

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [R,L] 




<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE application/javascript 
    AddOutputFilterByType DEFLATE application/rss+xml 
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
    AddOutputFilterByType DEFLATE application/x-font 
    AddOutputFilterByType DEFLATE application/x-font-opentype 
    AddOutputFilterByType DEFLATE application/x-font-otf 
    AddOutputFilterByType DEFLATE application/x-font-truetype 
    AddOutputFilterByType DEFLATE application/x-font-ttf 
    AddOutputFilterByType DEFLATE application/x-javascript 
    AddOutputFilterByType DEFLATE application/xhtml+xml 
    AddOutputFilterByType DEFLATE application/xml 
    AddOutputFilterByType DEFLATE font/opentype 
    AddOutputFilterByType DEFLATE font/otf 
    AddOutputFilterByType DEFLATE font/ttf 
    AddOutputFilterByType DEFLATE image/svg+xml 
    AddOutputFilterByType DEFLATE image/x-icon 
    AddOutputFilterByType DEFLATE text/css 
    AddOutputFilterByType DEFLATE text/html 
    AddOutputFilterByType DEFLATE text/javascript 
    AddOutputFilterByType DEFLATE text/plain 
</IfModule> 


<IfModule mod_gzip.c> 
    mod_gzip_on Yes 
    mod_gzip_dechunk Yes 
    mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
    mod_gzip_item_include handler ^cgi-script$ 
    mod_gzip_item_include mime ^text/.* 
    mod_gzip_item_include mime ^application/x-javascript.* 
    mod_gzip_item_exclude mime ^image/.* 
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</IfModule> 



<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> 
<IfModule mod_headers.c> 
    <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$"> 
    Header set Cache-Control "max-age=2678400, public" 
    </filesmatch> 
    <filesmatch "\.(html|htm)$"> 
    Header set Cache-Control "max-age=7200, private, must-revalidate" 
    </filesmatch> 
    <filesmatch "\.(pdf)$"> 
    Header set Cache-Control "max-age=86400, public" 
    </filesmatch> 
    <filesmatch "\.(js)$"> 
    Header set Cache-Control "max-age=2678400, private" 
    </filesmatch> 
</IfModule> 

它工作正常。但是,當我在後端工作時(www.mywebsite/admin),緩存也適用,這在更新圖像和文本時非常不利。

我試圖在我的htaccess文件的最底部此解決方案:
htaccess Disable cache if URL contains string?
但我的內容仍然從內存緩存讀取。

我也嘗試了「位置」和「LocationMatch」指令,但它創建了一個內部服務器錯誤:

<Location /admin> 
FileETag None 
Header unset ETag 
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
Header set Pragma "no-cache" 
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</Location > 

有沒有人誰可以在此幫助嗎? 謝謝!

+0

嘗試詢問:** https://serverfault.com**(可以使用相同的帳戶)。 –

回答

0
<Directory /some/real/path/to/tmp> 
    Header Set Pragma "no-cache" 
    Header Set Expires "Thu, 1 Jan 1970 00:00:00 GMT" 
    Header Set Cache-Control "max-age=0, no-store, no-cache, must-revalidate" 
    Header Unset ETag 
    FileETag None 
</Directory> 

這應該有效。