2014-12-02 39 views
0

我們嘗試了一些我們在Google上發現的事情,但似乎無法獲得任何工作。覆蓋服務器上的所有Wordpress htaccess

的問題

我們與它周圍500 WordPress的網站的服務器。我們正在嘗試使用全局htaccess將每個實例的所有wp-login.php頁面鎖定到我們辦公室的IP地址 - 但是單個的Wordpress htaccess文件正在覆蓋這一點。

環境

我們正在運行的Plesk管理的每個網站/ WordPress的實例的AWS Linux服務器上託管。

問題

有沒有一種方法,我們可以在服務器上設置一個htaccess文件鎖定所有的WordPress的登錄頁面,而不單獨htaccess的文件重寫此?


任何幫助或建議一個很好的方式來做到這一點,將不勝感激。

在此先感謝

回答

0

我假設你已經在RewriteOptions指令讀了。正如我在Tips for debugging .htaccess rewrite rules和說明您已與WP產生自己的.htaccess文件中找到,通過默認的電流路徑掃描.htaccess和最低重寫規則適用,除非更高的一個指定RewriteOptions Inherit在這種情況下,它規則在子範圍中指定的規則之後執行,並且這是catch-22,因爲WP訪問文件在其所有執行路徑上生成[L]標誌,以防止父規則被觸發。

因此,答案是比其他重寫Apache的機制來做到這一點,你可以使用SetEnvIf指令:

SetEnvIf Remote_Addr "!^192\.168\." forbidden 
<Files *> 
    Order allow,deny 
    Allow from all 
    Deny from env=forbidden 
</Files> 

SetEnvIf Remote_Addr "!^192\.168\." forbidden 
<Directory /var/www/wproot> 
    Order allow,deny 
    Allow from all 
    Deny from env=forbidden 
</Directory> 

顯然,你需要改變正則表達式滿足您當地的需求,但這應該做的業務。 Apache文檔提供了其他變體,但您應該能夠找到適用於您的案例的變體。只需將它放在每個虛擬服務器上下文中(如果需要的話,可以在目錄(匹配)指令中),或者放在公共父目錄.htaccess文件中。

+0

感謝您的支持。我似乎無法採取,我試圖讓它在所有使用這樣的通配符的站點都能正常工作: 'SetEnvIf Remote_Addr「!^ 192 \ .168 \」。禁止 <目錄/ var/WWW /虛擬主機/ * /的httpdocs /可溼性粉劑管理員> 訂單允許,拒絕 從所有 允許來自ENV拒絕=禁止 ' 將其投擲500錯誤。在這種情況下是否可以一次覆蓋所有網站? – 2014-12-04 14:11:55

0

我最終得到這個與你的第一個建議,但實際上沒有SetEnvIf行是必需的,所以非常感謝!這是我在/ var /網絡/虛擬主機文件夾中的.htaccess其他任何人需要這樣的:

<files wp-login.php> 
    order deny,allow 
    deny from all 
    Allow from xxx.xxx.xxx.xxx 
</files> 

尼斯和簡單,從以前的路線,我試圖採取這種完全不同的。

+0

我不好意思,我忘了'Allow from'是一個更加靈活的裸IP。它也將允許部分IP地址,域名(或完全限定或部分)或其列表。許多路徑來解決方案:) – TerryE 2014-12-04 17:17:54