2010-06-04 47 views
2

這就是我想做的事:需要一個重寫規則幫助 - 阿帕奇

http://www.mysite.com/  > http://www.mysite.com/index.php 
http://www.mysite.com/asd > http://www.mysite.com/index.php?page=$1 

asd將是網頁(s)表示,獲得追加到的index.php的$ page變量的名稱。

我當前的重寫規則成功地重定向了請求的頁面,但未能加載默認的index.php頁面。

RewriteEngine On 
RewriteRule ^([\w]*)$ /index.php?page=$1 [L] 

我該如何解決這個問題? :/

回答

1

你需要有匹配一個規則只/:

RewriteRule ^/$ /index.php [L] 

然後你的另外一個:

RewriteRule ^/([\w]+)$ /index.php?page=$1 [L] 
+0

不是'[\ w]'冗餘嗎?我認爲'\ w'就夠了。 – Amarghosh 2010-06-04 08:38:40

+0

我會說這是多餘的。我發現RewriteRules有一種不能以意想不到的方式工作的傾向,所以我把它放進去了。 – 2010-06-04 13:33:20

1

對於我的,我只是整個路徑傳遞到索引頁面。

RewriteRule ^.*$ /index.php?page=$0 [L,QSA] 

然後使用list()explode()以塊起來。

list($param1, $param2, $param3) = explode("/", $_GET['page']); 

否則,你將需要兩條規則。

或者使用相同的規則,並在/頁上有一個空的?page =參數。