簡體   English   中英

語言重寫.htaccess

[英]Language Rewrite .htaccess

嘆息...我嘗試根據以下 Stack Overflow 問題構建一些重寫規則: 問題 1 問題 2

我的 .htaccess 目前看起來像這樣:

RewriteEngine On 
RewriteBase /

RewriteCond %{REQUEST_URI} !^/(en|fr|es|de)/
RewriteRule ^(.*)$ /en/$1 [R,L]

RewriteRule ^(en|fr|es|de)/(.*)$  $2?locale=$1 [L]

我嘗試了各種變體(包括問題中給出的確切答案)。

就目前而言,我的 URL 正在重定向到:

/en/?locale=en

當我在 Firefox 中查看看起來像無限重定向循環的根時(“頁面未正確重定向”)。

正如您可能已經猜到的那樣,我希望它在根目錄上重寫為 /en/ 並使其在瀏覽器中看起來像那樣。 但我希望真正的 url 是 /?locale=en。 根目錄上有一個 index.php。 也許我需要另一個規則來考慮這一點?

我不知道,我真的很累很惱火,.htaccess 一直是我的敗筆。 任何見解表示贊賞。

您需要確保第一條規則中沒有區域設置查詢字符串:

RewriteCond %{QUERY_STRING} !locale=
RewriteCond %{REQUEST_URI} !^/(en|fr|es|de)/
RewriteRule ^(.*)$ /en/$1 [R,L]

或者你可以試試:

RewriteCond %{THE_REQUEST} \ /+(?!(en|fr|es|de)/).*
RewriteRule ^(.*)$ /en/$1 [R,L]

暫無
暫無

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

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