2012-01-11 33 views
0

我有一個多語種網站和。 Htaccess,它顯示所有頁面。如何在.htaccess中重定向? (多語言)

我想重定向(使用代碼301)詢問RewriteEngine。例如:

site.com?lang=ru => site.com (remove `lang=ru` - Russian only) 
site.com/news.html?lang=ru => site.com/news.html 

site.com/home.html => site.com (remove `home.html` - only on the main page) 
site.com/home.html?lang=ua => site.com/?lang=ua 

site.com/rev.html?lang=ua&start=0 => site.com/rev.html?lang=ua (If start = 0, then remove `start=0`) 
site.com/rev.html?lang=ua&start=27 => site.com/rev.html?start=27&lang=ua (should be conversely) 

and so on many ... 

我對重定向的經驗很少。你可以幫助我。如何準備Apache的htaccess文件以符合此標準?該怎麼辦?

在此先感謝

回答

4

刪除lang=ru

RewriteCond %{QUERY_STRING} ^(.*)&?lang=ru(.*)$ 
RewriteRule ^(.*)$ /$1?%1%2 [L,R=301] 

卸下home.html

RewriteRule ^home.html$/[L,R=301] 

刪除start=0

RewriteCond %{QUERY_STRING} ^(.*)&?start=0(.*)$ 
RewriteRule ^(.*)$ /$1?%1%2 [L,R=301] 

交換start=##lang=##

RewriteCond %{QUERY_STRING} ^(.*)lang=(.+)&start=([0-9]+)(.*)$ 
RewriteRule ^(.*)$ /$1?%1start=%3&lang=%2%4 [L,R=301] 
+0

太謝謝你了!所有轉身和正確! – 2012-01-11 18:12:06

+0

+1爲良好的清潔規則。 – anubhava 2012-01-11 18:42:55