我需要暫時移動我網站的目錄,以便我可以放入域根目錄上的登錄頁面。登錄頁面將位于子域中并指向根域(通過 DNS)。
我正在嘗試通過 htaccess 進行簡單的 302 重定向,以將站點目錄從https://example.com/更改為https://example.com/home/,但我陷入了回圈。當我加載網站時,我會永遠得到這個...
https://example.com/home/home/home/home/home/home/
任何想法如何讓它發揮作用?
Redirect 302 / https://example.com/home/
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
uj5u.com熱心網友回復:
mod_aliasRedirect指令是前綴匹配的,匹配之后的所有內容都被復制到目標 URL 的末尾。因此,相同的指令將重定向/home/(匹配/)到/home/home/(home/附加在目標上)等。
由于您已經在 WordPress 代碼塊中使用了 mod_rewrite,您還應該在此處使用 mod_rewrite 以避免潛在的沖突。mod_rewrite 總是在 mod_alias 之前執行,而不管.htaccess.
例如,要 302 重定向根,然后使用以下代碼:
RewriteRule ^$ /home/ [R,L]
顯然,當您在根目錄中實作替代登錄頁面時,需要洗掉此重定向。
登錄頁面將位于子域中并指向根域(通過 DNS)。
但是,如果您通過“子域”(如評論中建議的那樣)實作此“登錄頁面”,那么我不確定您為什么需要移動現有主頁,因為它存在于不同的主機名上。(?)
但是在子域(大概指向主域檔案根)上實施新的登錄頁面將創建一個非常脫節的站點。子域和主域是兩個不同的站點。
如果您想在 WordPress 之外(在同一域中)創建一個新的登錄頁面(替換舊主頁),那么我不知道您如何實作從舊主頁到的“重定向”,/home/因為這會自然地重定向新的登陸頁面 - 除非這只是“臨時的”,直到新的登陸頁面被實施?
據我所知,您需要:
/home/使用主頁的現有內容創建一個新的 WP 頁面。(現有的 WP 主頁將無法再訪問。)在單獨的子目錄(在 URL 中不可見)中創建您的新登錄頁面 -
/new-landing-page.php如果這是一個相對簡單的頁面,則可能只是一個單獨的檔案(例如)。在內部將請求從檔案根(否則會顯示 WP 主頁)重寫到新的登陸頁面,并防止請求通過 WordPress 路由。
例如:
# Rewrite requests for the homepage to the new landing page. RewriteRule ^$ new-site/new-landing-page.php [L]example.com/請求何時被提供example.com/new-site/new-landing-page.php(無重定向)。WP 被繞過。但是/<something>以通常的方式通過WP路由。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/364348.html
