Dot-Htaccess

防止瀏覽器直接訪問 Wordpress 外掛的文本文件

  • December 31, 2019

我有一個 Wordpress 外掛“custom-plugin”,它有一些幫助配置它的 .txt 文件。我想阻止瀏覽器直接訪問這些 .txt 文件。

我以前從未使用過 htaccess,但我正在嘗試編輯根 .htaccess 文件並添加以下行:

# BEGIN custom-plugin
# Block web browser access to .txt files.
RedirectMatch .*/custom-plugin/.*\.txt$ http://MyWebsite.com
# END custom-plugin

唉,它不起作用,我仍然可以直接訪問*https://www.MyWebsite.com/wp-content/plugins/custom-plugin/plugin_settings.txt*

我做錯了 htaccess 嗎?

我想要做的就是阻止訪問這些文件 - RedirectMatch 是錯誤的選擇嗎?

注意:這是根 htaccess 文件(位於*public_html/.htaccess*)。

目前尚不清楚為什麼您的重定向不起作用(假設您的.htaccess文件中已經有其他指令在起作用)。也許您與其他指令有衝突。

但是,如果您想阻止對這些.txt文件的訪問,那麼您不想重定向請求,因此RedirectMatch不是適合該工作的工具。

只需阻止對所有.txt文件的訪問:

<Files "*.txt">
Require all denied
</Files>

這將為所有.txt對文件的HTTP 請求返回 403 Forbidden。假設您不需要特定於您的“自定義外掛”。還假設 Apache 2.4+

*旁白:*這些.txt/config 文件是否真的需要外掛繼續使用,而不僅僅是安裝?!

**更新:**我只想阻止我自己的外掛文件夾中的那​​些

如果您不想.htaccess在外掛目錄中創建額外的文件(將獲得額外的好處,它可以簡單地與外掛一起分發),那麼您可以在根.htaccess文件中使用 mod_rewrite 指令。

在任何現有的 WordPress mod_rewrite 指令之前,以下內容需要靠近.htaccess文件頂部:

RewriteRule ^wp-content/plugins/custom-plugin/.+\.txt$ - [F]

或者,如果您想對目錄結構更靈活一點:

RewriteRule /custom-plugin/.+\.txt$ - [F]

上面還為任何匹配RewriteRule 模式的請求返回 403 Forbidden 。使用L標誌時不需要F標誌。替換字元串由一個連字元 ( -) 組成,表示沒有替換

或者,在 Apache 2.4+ 上,您可以使用 Apache 表達式:

<If "%{REQUEST_URI} =~ m#/custom-plugin/.+\.txt$#">
Require all denied
</If>

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