Dot-Htaccess

從 .htaccess 中的 Files 指令中排除圖像格式

  • October 31, 2020

如果這個問題太簡單或在錯誤的地方,我很抱歉,但我想要noindex除了伺服器上的圖像文件之外的所有內容。我將 WordPress 用作無頭 CMS,但一些圖像直接來自我的伺服器,我仍然希望它們被索引,而其他一切,我不需要索引。

我已經嘗試過以下方法,但我的語法錯誤或在語義上我違反了一些規則:

#<Files ~ "\.(?!png|jpe?g|gif)$">
#    Header set X-Robots-Tag "noindex"
#</Files>

#<FilesMatch ".+\.(gif|jpe?g|png)$">
   Header set X-Robots-Tag "noindex"
#</FilesMatch>

正如目前設置的那樣,所有內容都設置為 noindex。如何排除圖像格式?

您的正則表達式匹配以.gif, .jpg, .jpeg&結尾的文件.png,但您需要一個匹配除它們之外的所有內容的正則表達式。這可以通過負前瞻正則表達式來實現。來自 Jan Goyvaerts 的正則表達式.info

如果你想匹配一些沒有被其他東西跟隨的東西,負前瞻是必不可少的。在解釋字元類時,本教程解釋了為什麼不能使用否定字元類來匹配 aq後不跟 a u。負前瞻提供了解決方案:q(?!u). 負前瞻結構是一對括號,左括號後跟一個問號和一個驚嘆號。在前瞻中,我們有簡單的正則表達式u

因此,在這裡,您將 替換為uyour .*\.(gif|jpe?g|png)$,結果如下:

<FilesMatch "^(?!.*\.(gif|jpe?g|png)$).*$">
   Header set X-Robots-Tag "noindex"
</FilesMatch>

引用自:https://serverfault.com/questions/1040738