Apache-2.4
Apache 僅重寫代理首頁
我嘗試了各種正則表達式(
^/$
,^index.php$
,^$
)來重寫/代理 WordPress 網站的首頁.htaccess
。作為記錄,我已經載入了適當的模組來完成此操作,並且可以使用特定的正則表達式為其他路徑執行此操作,但不是首頁。其他答案已經表明^$
並且^/$
會起作用,但它對我不起作用。怎麼可能只定位到首頁?RewriteEngine On RewriteBase / RewriteRule ^$ http://some-other-domain.com [P]
最終目標是只為首頁提供來自另一個網站的頁面。也許有更好的方法?
.htaccess
在文件頂部的WordPress 前端控制器之前嘗試類似以下的操作:RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^(index\.php)?$ http://some-other-domain.com/ [P]
這裡不需要
RewriteBase
and指令。RewriteEngine
大概後面已經作為程式碼塊的RewriteEngine
一部分出現在文件中# BEGIN WordPress
(順序並不重要)。請注意替換字元串上的斜杠後綴。這是 URL 的必需部分(不能有空的 URL 路徑)。如果您在此處省略它,那麼以後必須有其他東西“修復”它。在外部重定向的情況下,瀏覽器會“修復”它,但這裡沒有“瀏覽器”。
這匹配一個空的 URL 路徑和
index.php
(如果 mod_dir在mod_rewrite 通過 mod_proxy 發送請求之前發出目錄索引的子請求)。在這種情況下,檢查REDIRECT_STATUS
env var 的條件是必要的,以避免代理所有內容,因為 WordPress 前端控制器將所有內容重寫為index.php
. 該條件確保僅匹配直接請求,而不是重寫請求。旁白:類似的
RewriteRule
模式^/$
永遠不會在.htaccess
上下文中匹配。這僅在該指令用於伺服器(或虛擬主機)上下文時才有效。