2013-01-17 217 views
3

我有這個網站,我想重寫網址:SEO多語言網站

mydomain.com/referinte?lang=en

mydomain.com/referinte?lang=ro

有沒有一種可能,所以我可以使用的.htaccess修改這樣的網址:

mydomain.com/en/references

mydomain.com/ro/referinte

我目前的.htaccess是:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
+0

爲了澄清,你希望有像'mydomain.com/en/references'這樣的URL被重寫爲'mydomain.com/references.php?lang = en'? – Tom

+0

我希望擁有像mydomain.com/en/references這樣的網址,現在網址如下所示:mydomain.com/references.php?lang=en – Andrei

回答

0

基礎上的投入,我會建議使用URL重寫配置如下:

RewriteEngine on 
RewriteRule ^([a-zA-Z-_]+)$ $1.php?lang=en [R] 
RewriteRule ^([a-z]+)/([a-zA-Z-_]+)$ $2.php?lang=$1 [R] 

第一條規則將/abc(無指定語言)之類的網址重寫爲/abc.php?lang=en並設置英文(en)作爲默認語言 第二條規則重寫等/xy/abc網址(使用指定語言)來/abc.php?lang=xy(語言從請求URL的第一部分截取)

實例:

  • http://mydomain.com/en/references => http://mydomain.com/references.php?lang=en(重寫規則#2)
  • http://mydomain.com/ro/referinte => http://mydomain.com/referinte.php?lang=ro(重寫規則#2)
  • http://mydomain.com/references => http://mydomain.com/references.php?lang=en(重寫規則#1)
  • http://mydomain.com/referinte => http://mydomain.com/referinte.php?lang=en(重寫規則#1)

請注意,該規則將忽略特定PHP文件的請求,即請求如下:http://mydomain.com/ro/referinte.phphttp://mydomain.com/referinte.php不會被改寫。此外,服務器的響應應該是不存在的頁面作爲當前即假設/referinte.php不存在一樣,要求如下:http://mydomain.com/en/referinte(新重寫)和http://mydomain.com/referinte?lang=en(電流改寫),我相信會返回404

希望這將有所幫助。