2015-10-13 94 views
0

我想英語版本添加到我的子域級網站如下:.htaccess的追加到查詢字符串QSA沒有重定向

  • en.mywebsite.com/business-name:這將顯示英文版本的子頁面。

    Options -Indexes 
    
    RewriteEngine On 
    RewriteBase/
    
    RewriteCond %{HTTP_HOST} . 
    RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com [NC] 
    RewriteCond %{HTTP_HOST} !^en\.mywebsite\.com [NC] 
    RewriteRule (.*) http://www.mywebsite.com/$1 [R=301,L] 
    
    RewriteCond %{HTTP_HOST} ^en\.mywebsite\.com 
    RewriteRule ^(.*)$ http://www.mywebsite.com/$1?language=en [QSA] 
    

    的問題是,它是通過將用戶重定向做它www.mywebsite:

現在我其實已經通過附加子域的查詢字符串用下面的代碼來實現它以某種方式.com/business-name?language = en,但是我想避免重定向,而是虛擬地傳遞「新生成的」查詢字符串。

是否可以實現,還是QSA總是重定向?

在此先感謝。

+0

它將** **總是重定向如果重寫規則是另一個域。 en.example.com和www.example.com並不相同。所以無論R標誌是否存在,apache都會重定向。如果您不想重定向,您可能必須使用P標誌進行代理。 –

回答

0

嘗試從改變你的最後一條規則:

RewriteCond %{HTTP_HOST} ^en\.mywebsite\.com 
RewriteRule ^(.*)$ http://www.mywebsite.com/$1?language=en [QSA] 

RewriteCond %{HTTP_HOST} ^en\.mywebsite\.com 
RewriteCond %{QUERY_STRING} !language= 
RewriteRule ^(.*)$ /$1?language=en [L,QSA] 
+0

這個伎倆!謝謝 :) –

相關問題