2017-09-01 153 views
2

我想基於瀏覽器的語言來實現我的WordPress網站重定向,通過在的.htaccessWordPress的瀏覽器語言重定向 - 太多的重定向錯誤

RewriteEngine On 
RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteRule ^$ https://www.example.com/ambienteTrabajo/?lang=es [L,R=301] 

?lang=es添加該代碼是如何WPML插件標籤我翻譯的頁面,但我沒有使用內置的WPML重定向,因爲它給了我一個不愉快的延遲:頁面第一次加載英文,然後幾秒鐘後重定向到西班牙語。

使用在URL重定向完成之前添加的代碼,但未顯示頁面;它顯示一個空白頁面,其中有一個太多重定向消息

我應該如何設置此重定向規則?我嘗試了很多沒有成功的事情。

回答

0

它可能會陷入無限循環,因爲每次頁面加載時它都會檢測到語言爲es並執行重定向...將讀取.htaccess,再次檢查語言,檢測到它的es並執行重定向再次等等等等

您重定向規則需要做以下

  • 如果瀏覽器語言爲es
  • 查詢字符串尚未包含lang=es
  • 才做重定向

我不是重寫規則的專家,但你可以試試下面的:

RewriteEngine On 
RewriteCond %{HTTP:Accept-Language} ^es [NC] 
RewriteCond %{QUERY_STRING} !(^|&)lang=es [NC] 
RewriteRule ^$ https://www.example.com/ambienteTrabajo/?lang=es [L,R=302] 

注:

刪除現有301重定向後,您需要清除瀏覽器緩存。

我已經改成了302重定向 - 你應該總是用一個臨時重定向302首先測試你的規則,以確保其工作之前使其永久使用301重定向,以防萬一出了差錯!