Wordpress
在位於 wp 文件夾中的任何 php 中獲取 403
在 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 個網站,任何其他網站都沒有這個問題:/
好吧,我很慚愧地說還有一個
.htaccess
inwp-content
andwp-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>
許多小時因為它而用鍵盤砸我的頭。
確保您沒有可能覆蓋您的自定義規則的目錄的返回值