2011-05-12 57 views

回答

0
的Apache網站

,你可以找到幾個examples of URL rewriting flavors,在某種程度上,這就夠用了這樣的事情在一個.htaccess文件:

RewriteEngine on 
RewriteRule ^french(/|)$ /index.php?lang=fr [flag] 

哪裏[flag]可以是下列之一:

[PT] 
[L,PT] 
[QSA] 
[L,QSA] 

你可能想看看PT (passthrough) flag docsRewriteRule flags docs。另外,請注意您的鏈接指向的是什麼:實際上,RewriteRule第一個參數是一個正則表達式,用於匹配要重寫的URL。目前,

^french(/|)$ 

匹配「法國」,該域名之後,接下來無論是斜線(/)或沒有(這是的(/|)的意思);也就是說,它會匹配www.mysite.com/french和www.mysite.com/french/,但沒有別的。如果您需要分析查詢字符串參數或子路徑,那麼您可能需要更復雜的正則表達式。

+0

這不是'[PT]'標誌的用途。 http://httpd.apache.org/docs/current/rewrite/flags.html#flag_pt – 2011-05-12 14:27:07

+1

@Rocket:mod_rewrite實際上是一個URL到文件名解析器。不管它重寫什麼,默認情況下都是最終結果。 '[PT]'是一種攻擊,它允許它進行URL到URL的重寫,然後傳回Apache,以便進一步處理像mod_alias這樣的模塊。儘管如此,它確實有點不合適。 – cHao 2011-05-12 14:31:07

+0

@cHao:我知道'[PT]'有什麼作用。我在評論說,「阻止Apache重定向到頁面,同時靜靜地加載它」並沒有什麼意義。 – 2011-05-12 14:37:25

3

你想用mod_rewrite和.htaccess文件來實現這一目標。

RewriteEngine On 
RewriteBase/
RewriteRule ^french/(.*)$ /index.php?lang=fr [L,QSA]