簡體   English   中英

.htaccess 重寫以將所有根 URL 重定向到一個新的子目錄,除了一個特定的子目錄

[英].htaccess rewrite to redirect all root URLs to a new subdirectory EXCEPT one specific subdirectory

我的 WP 網站有兩種語言。 默認語言 (EN) 曾經是默認語言,並且是子目錄中的第二語言 (NL)。 現在默認語言的所有頁面和目錄也已移至子目錄,根 url 僅顯示一個 splah 頁面,您必須在其中選擇您的語言。

所以root.com/...中的所有內容都應該使用 301 重定向規則重定向到root.com/en/...

除了root.com/nl/...中的所有內容,它們應該留在root.com/nl/...

AND除了帶有語言選擇的啟動頁面,它仍然是root.com

我應該如何在 htaccess 文件中編寫重定向規則?

這實際上應該很簡單。

我們使用 RewriteCond 來檢查請求的 URL 路徑是否不是以/nl/開頭。 ^將模式錨定在測試字符串的開頭,而! 否定它。

在 RewriteRule 模式中,我們要求路徑至少包含一個字符。 此時前導/已被剝離(僅當在 .htaccess 中配置了重寫時,如果它是通過中央服務器配置完成的,那將是不同的) - 這意味着,在根目錄中請求您的啟動畫面URL 將是此處的“空”路徑。 通過將模式錨定在開頭和結尾,並使用+量詞,我們要求路徑必須至少包含一個字符,因此如果請求根路徑,則此規則將什么也不做。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/nl/
RewriteRule ^(.+)$ /en/$1 [R=302,L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM