我有一個多語言站點,它使用cookie來存儲語言信息。我需要編寫一個.htaccess腳本根據cookie將語言添加到基於cookie的URI使用htaccess和基於URI設置cookie
a)檢查是否設置了語言cookie,以及URI是否包含該腳本。如果沒有,則將其添加到URI中。
現在我有這樣的:
RewriteCond %{HTTP_COOKIE} language=([a-z]{2}) [NC]
RewriteCond %{REQUEST_URI} !^%1/(.*) [NC]
RewriteRule ^(.*)$ /%1/%2 [L,NC,R=302]
雖然這給了我正確的URI(「domain.com/en/」),它給了我一個錯誤說的頁面沒有正確重定向。
b)檢查URI中是否設置了語言參數,以及是否設置了適當的cookie。
到目前爲止的代碼因爲這是我有:
RewriteRule ^([a-z]{2})(.*)/$ - [co=language:$1:.domain.com:7200:/]
但是你離開頁面後,這隻設置cookie。所以我將不得不在地址中添加'/ fr /',然後刷新兩次
我已經試過尋找谷歌和堆棧溢出,但我似乎無法得到這個工作!
我是新來的.htaccess - 我不知道%1只適用於最後一個RewriteCond,謝謝!我嘗試了你的建議,但沒有奏效。它附加了語言,但Firefox說這個頁面沒有正確重定向。 – Martin 2011-12-21 18:21:06
我嘗試了你的新建議,它仍然給我一個無限循環,並且uri變成http://domain.com/fr/fr/fr/fr/fr/fr/fr/fr/fr/fr/fr/ fr/fr/fr/fr/fr/fr/fr/fr/fr/ – Martin 2011-12-21 22:00:26
如果我有Cookie,則重定向到domain.com/fr/404.shtml;如果我沒有cookie並轉到domain.com/fr/,那麼它只會在第二次查看該頁面時設置它。 – Martin 2011-12-22 15:27:30