Dot-Htaccess
.htaccess 指令之間的優先級 - 為缺少靜態資源返回 404
在 WordPress 安裝中,我想立即返回 404(沒有禮貌頁面),因為缺少靜態資源,但指令似乎衝突。
你能幫我理解解決問題嗎?
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule \.(css|js|html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$ [nocase,redirect=404,last] <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_METHOD} !POST RewriteCond %{QUERY_STRING} ^$ RewriteCond %{HTTP:Cookie} !^.*(wordpress_logged_in).*$ RewriteCond %{REQUEST_URI} !^/wp-content/cache/swift-performance/([^/]*)/assetproxy RewriteCond /home/217146.cloudwaysapps.com/ssytsarbtn/public_html/wp-content/cache/swift-performance/%{HTTP_HOST}%{REQUEST_URI}/desktop/unauthenticated/index.html -f RewriteRule (.*) wp-content/cache/swift-performance/%{HTTP_HOST}%{REQUEST_URI}/desktop/unauthenticated/index.html [L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
RewriteRule \.(css|js|html|htm|...<etc>...|zip)$ [nocase,redirect=404,last]
您缺少
RewriteRule
. _ 這將最終將請求重寫為[nocase,redirect=404,last]
(一個無意義的 URL),該 URL 將通過 WordPress 進行路由,最終 WordPress 將生成 404(當你說“禮貌頁面”時,我假設你指的是這個)。它應該是以下形式:
RewriteRule \.(css|js|html|htm|...<etc>...|zip)$ - [nocase,redirect=404,last]
注意附加的連字元 (
-
) 作為第二個參數,在標誌(第三個參數)之前。更新:
R
當您使用標誌指定非 3xx 狀態時,無論如何都會忽略*替換字元串。*但是,-
(連字元)明確表示“無替換”。來自 Apache 文件:
-
(破折號)破折號表示不應執行替換(現有路徑通過未觸及)。當需要在不更改路徑的情況下應用標誌(見下文)時使用此選項。(文件將其稱為“破折號”,儘管它嚴格來說是一個連字元。)