2015-07-28 34 views
1

爲了澄清參數與追加路徑中的新領域,我想重定向:.htaccess的重寫域根據給定的

domain.page.co.uk/path/?lang=de 

de.page.co.uk/path/ 

其中,路徑將根據頁面改變我在。

我想保留我自己的域的路徑沒有在最後的附加參數,但基於我的參數,相應地更改新的域。這樣我可以爲不同的語言添加更多的重寫規則,即lang = fr。

我嘗試了幾種方法,但都沒有成功。我不熟悉htaccess重寫規則語法。下面是我根據我可以在網上找到曾嘗試:

RewriteRule ^/([^/d]+).page.co.uk/?$ ^?lang=$1 [L,QSA] 

RewriteCond %{REQUEST_URI} ^(.*)/?lang=de$ 
RewriteRule ^(.*) http://de.page.co.uk/%1 [R=302,NC] 

RewriteRule ^de.(.*)/?$ ^(.*)\?lang=de [NC,L] 

回答

1

你會想是這樣的:

RewriteCond %{HTTP_HOST} ^domain.page.co.uk 
RewriteCond %{QUERY_STRING} lang=(de|fr|it)  [NC] 
RewriteRule .* http://%1.page.co.uk%{REQUEST_URI}? [R=301,L] 

有關說明,請參閱:URL Aliasing, Redirection, Rewriting and Reverse Proxying using Apache HTTPD

+0

謝謝您的答覆。我試過了你的代碼,但是當有額外的路徑時,它不會重定向/重寫。 domain.page.co.uk/path/?lang=de。它沒有路徑。另外,在重寫規則中,是否可以從新URL中刪除?lang = de? – c0dingisfun

+0

要從新URL中刪除所有cgi參數,只需將**「?」**添加到目標URL的末尾即可。 ** http://%1.page.co.uk% {REQUEST_URI}?** – arober11

+0

由於某些原因,cgi參數仍顯示在新的URL中。你知不知道爲什麼會出現這種情況/任何其他可能超越規則的設置?這是一個WordPress網站。 – c0dingisfun