通過...中的以下瀏覽器快取mod_expires.c.htaccess
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 day"
</IfModule>
...我想添加一個例外:不應快取一個或多個檔案夾。我嘗試了一個帶有Directorybefore的版本</IfModule>,但這導致了 500 Internal Server Error。那
<Directory "/absolute/path/to/specialfolder">
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
</Directory>
和那個片段
<Directory "/absolute/path/to/specialfolder">
ExpiresActive Off
</Directory>
出了什么問題,有什么可以幫助的?(對于一個或幾個檔案夾)
uj5u.com熱心網友回復:
該<Directory>指令不允許在.htaccess背景關系中使用,它只能在服務器(或虛擬主機)背景關系中使用。(因此出現 500 錯誤。)
userland/.htaccess方式是.htaccess在該“特殊檔案夾”中創建另一個檔案,ExpiresActive Off以覆寫父配置。
或者,您也許可以<If>在根.htaccess檔案中使用運算式。
例如:
# Turn off mod_expires for a specific directory
<If "%{REQUEST_URI} =~ m#^/specialfolder/#">
ExpiresActive Off
</If>
REQUEST_URI檔案根相對 URL 路徑在哪里。
或者,僅在不請求這些檔案夾時使用 mod_expires 。例如:
# Only use mod_expires when NOT requesting the specific directories
<If "%{REQUEST_URI} !~ m#^/(specialfolder|anotherfolder)/#">
ExpiresActive On
ExpiresDefault "access plus 1 day"
</IfModule>
不應快取一個或多個檔案夾。
雖然禁用 mod_expires 并不一定會阻止資源被快取。它只是防止 mod_expires 設定Cache-Control(and Expires) 標頭。如果您特別想禁用快取,請考慮直接明確設定相關Cache-Control/Expires標頭。
例如:
# Set env var when special "none-cache" folder requested:
SetEnvIf Request_URI "^/(specialfolder|anotherfolder)/" NOCACHE
# Set no-cache headers if NOCACHE env var is set
Header always set Cache-Control "no-store" env=NOCACHE
Header always set Expires "0" env=NOCACHE
在此示例中,您不需要禁用 mod_expires,因為該Header指令將覆寫 mod_expires(因為 mod_headers在mod_expires 之后處理)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/476299.html
標籤:阿帕奇 .htaccess 缓存 浏览器缓存 mod-expires
