
我使用名為Duplicator Pro 的WordPress 插件,使用其安裝程式進行安裝的最佳方法是使用伺服器IP 而不是網域,因為這樣可以更輕鬆地自動填入和連接到伺服器,同時也不會觸發多個ModSecurity 規則。
最好的安裝網址是:
http://111.222.333.444/~customcpanelaccount/customfolder/installer.php
代替:
https://website.com/customfolder/installer.php
如果您加載其中任何一個文件,它會自動將您重定向到:
/customfolder/dup-installer/main.installer.php
但是,由於伺服器具有以下 Apache/LiteSpeed 規則,因此它會自動將 http:// 重定向到 https://,這會導致它拋出以下訊息:
<IfModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>
我正在嘗試找出一種方法,使上述 Apache/LiteSpeed 規則僅適用於網域,而不適用於直接 IP,或使其在使用 的檔案和 的目錄時installer.php
不會main.installer.php
觸發/dup-installer/
遺憾的是沒有 FilesNotMatch / DirectoryNotMatch / LocationNotMatch 類型的 if 語句。
任何人有任何想法,我將不勝感激的幫助/建議!
答案1
DOMAIN_REQUESTED
如果請求域(而不是 IP 位址),您可以設定一個環境變數(例如),並Header
根據是否使用參數設定此環境變數來有條件地設定env=
。
例如:
SetEnvIf Host "[a-z]" DOMAIN_REQUESTED
Header always set Content-Security-Policy "upgrade-insecure-requests;" env=DOMAIN_REQUESTED
如果Host
標頭包含字元 az,則您必須請求域名,而不是 IP 位址。在這種情況下,DOMAIN_REQUESTED
環境變數設定為1
.
然而...
似乎很奇怪,最好使用伺服器的 IP 位址和每個使用者的 Web 目錄透過不安全的 HTTP 來安裝它?通常最好避免使用每用戶 Web 目錄 (mod_userdir),因為它確實會擾亂根相對 URL 路徑。
如果這只是為了安裝過程,你能不能簡單地暫時註解掉該
Header
指令?
遺憾的是沒有 FilesNotMatch / DirectoryNotMatch / LocationNotMatch 類型的 if 語句。
嗯,有一點是,你可以使用負前瞻(或者向後看) 在正規表示式中確定何時匹配發生不是發生。
...或使其在使用 的檔案和 的目錄時
installer.php
不會main.installer.php
觸發/dup-installer/
HTTPContent-Security-Policy: upgrade-insecure-requests;
回應標頭僅影響連結的資源,而不影響頂級導航。所以無論如何這不適用於installer.php
和main.installer.php
。如果這些請求被升級版(或者,更可能是“重定向”)然後其他東西正在這樣做。