Apache 虛擬主機允許不覆蓋伺服器允許

Apache 虛擬主機允許不覆蓋伺服器允許

我正在運行 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,Allowthen 如果您沒有任何Deny語句,則將允許所有存取(請參閱apache 相容: 順序)。

因此,要么使用Order Allow,Deny或添加一個Deny from all.

相關內容