2011-11-27 113 views
0

我的PHP網站使用動態URL,並在Apache中運行。本網站可以用荷蘭語和英語查看。 默認是荷蘭人,但我希望人們能看到默認的英文版本,如果他們訪問:http://example.com 英文版可以http://example.com/en觀看,但是這是一個動態的URL和/ EN目錄不存在體力。我可以做301重定向,但我不希望用戶在URL中看到/ zh。將Apache URL重寫爲動態URL

這是我在我的虛擬主機配置至今:

RewriteEngine on 
RewriteRule ^/(.*)$ /en [NC] 

不幸的是,這並不在所有的工作。訪問.com域時,我仍然可以看到荷蘭頁面。 有沒有人知道正確的rewriterule實現我的目標?我更喜歡我的apache虛擬主機配置文件中的規則。

回答

0

你可以嘗試成才艾克:

 
RewriteRule !^[a-z]{2}/ /en%{REQUEST_URI} [L,R=301] 

我希望它爲你工作

+0

謝謝你的快速反應。不幸的是,您提供的規則導致無限重定向循環到/ en/en/en/en等。 – user1067807

0

看一看http://httpd.apache.org/docs/current/rewrite/flags.html其中詳細闡述了所有可能的標誌。既然你說/ en並不存在,你可能需要使用P或者PT,這樣你的其他規則在重寫之後纔會被評估。

你可能想嘗試保持原始的URI作爲重定向的一部分。

RewriteRule ^/(.*) /en/$1 [NC]