我正在運行 Apache 2.4,根據我在 apache 網站上找到的文檔(http://httpd.apache.org/docs/current/sections.html),在「如何合併各部分」部分下,它表示虛擬主機配置應覆蓋伺服器配置。
我有一個檔案匹配伺服器配置正規表示式,以防止使用「順序拒絕,允許」邏輯公開存取重要的 WordPress 檔案:
<FilesMatch "wp-login\.php|xmlrpc\.php|admin-ajax\.php">
Include conf/global_acl.conf
</FilesMatch>
然後,在我的虛擬主機下,我有另一個文件匹配,以允許對某些文件進行特定訪問以啟用 WordPress 外掛:
<FilesMatch "^(xmlrpc|wp-trackback)\.php$">
Order Deny,Allow
Allow from wordpress.com
Allow from 123.123.123.123
</FilesMatch>
我的目標是讓伺服器配置允許進程,由虛擬主機繼承,然後讓虛擬主機解析附加的允許指令。它似乎不起作用。如果我透過刪除 xmlrpc 檔案來修改伺服器級別,虛擬主機將可以工作。
編輯
為了消除混亂,我的問題是,在虛擬主機下,即使我使用 IP 123.123.123.123,我也被拒絕。我期望虛擬主機繼承伺服器配置中的白名單條目。然後在虛擬主機配置中允許新增額外的白名單。我的伺服器配置頂部有一個“拒絕所有”。
有什麼想法嗎?先致謝!
答案1
2.4 中所做的更改是替換語法允許來自由新的要求全部授予和類似的。看Apache 升級文檔部分存取控制。
您可以使用一個 compat 模組來避免變更。如果您使用它,並選擇Order Deny,Allow
then 如果您沒有任何Deny
語句,則將允許所有存取(請參閱apache 相容: 順序)。
因此,要么使用Order Allow,Deny
或添加一個Deny from all
.