Wordpress

在位於 wp 文件夾中的任何 php 中獲取 403

  • December 14, 2016

在 CentOS 6.7 上使用 VestaCP 和 nginx + httpd

該網站執行良好,但從 javascript 載入 php 文件失敗,因為它給出了 403 錯誤。

我嘗試了以下方法:(每個文件夾都有相同的所有者和權限(755))

wp-content/test.php  // Error 403
wp-includes/test.php // Error 403
wp-admin/test.php    // OK, 200
test/test.php        // OK, 200
wp-contest/test.php  // OK, 200

事實上…… wp-content/.php 和 wp-includes/.php 失敗,包括這些文件夾內的子目錄中的 php。

位於 wp-content 和 wp-includes 中的任何 php 文件都會自動給我 403 錯誤,即使這些文件不存在,我也會得到 403 而不是 404。

  • 我檢查了 nginx.conf 和 wp-content/wp-includes 沒有任何關係
  • 我檢查了.htaccess,沒什麼奇怪的,我什至在備份後將其刪除。
  • 文件夾權限為 755,文件為 644
  • 也試過了restorecon -R /home/$user/web/url/public_html

沒有任何效果,我認為這與 wordpress 無關,因為文件是獨立載入的,相反,它必須與伺服器相關。

附加數據:

  • 我們使用禁用代理的 cloudflare,我認為它沒有從前任所有者那裡繼承任何導致此問題的配置,但我不會丟棄它。
  • 該網站剛剛從託管遷移到我們的 vps
  • 我是系統管理員,我們有大約 60 個網站,任何其他網站都沒有這個問題:/

好吧,我很慚愧地說還有一個.htaccessin wp-contentandwp-include文件夾具有以下規則:

<FilesMatch "\.(?i:php)$">
 <IfModule !mod_authz_core.c>
   Order allow,deny
   Deny from all
 </IfModule>
 <IfModule mod_authz_core.c>
   Require all denied
 </IfModule>
</FilesMatch>

許多小時因為它而用鍵盤砸我的頭。

確保您沒有可能覆蓋您的自定義規則的目錄的返回值

引用自:https://unix.stackexchange.com/questions/330383