我嘗試過各種正規表示式(^/$
、^index.php$
、^$
)來透過 重寫/代理 WordPress 網站的主頁.htaccess
。作為記錄,我已加載適當的模組來完成此操作,並且可以為具有特定正則表達式的其他路徑執行此操作,但只是不是主頁。其他答案已經表明^$
並且^/$
將會起作用,但它對我不起作用。怎麼可能只取得主頁呢?
RewriteEngine On
RewriteBase /
RewriteRule ^$ http://some-other-domain.com [P]
最終目標是僅為主頁提供來自另一個網站的頁面。也許有更好的方法?
答案1
請在文件頂部嘗試類似以下內容.htaccess
:前WordPress 前端控制器:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(index\.php)?$ http://some-other-domain.com/ [P]
此處不需要RewriteBase
和指令。RewriteEngine
大概RewriteEngine
已經作為程式碼區塊的一部分出現在檔案中# BEGIN WordPress
(順序並不重要)。
注意上面的斜線後綴代換細繩。這是一個必需的URL 的一部分(不能有空 URL 路徑)。如果您在這裡省略它,那麼稍後必須用其他東西來「修復」它。如果是外部重定向,則瀏覽器會“修復”它,但這裡沒有“瀏覽器”。
這與空 URL 路徑和index.php
(如果 mod_dir 發出目錄索引的子請求)相符前mod_rewrite透過mod_proxy發送請求)。這狀態在這種情況下,檢查REDIRECT_STATUS
環境變數是必要的,以避免代理一切,因為 WordPress 前端控制器將所有內容重寫為index.php
.此條件確保僅符合直接請求,而不符合重寫請求。
在旁邊:ARewriteRule
圖案like^/$
在上下文中永遠不會匹配.htaccess
。僅當該指令用於伺服器(或者虛擬主機) 情境.