2011-06-16 88 views
0

我目前正在嘗試重寫一些URL,並且它們都遵循基本格式。htaccess重寫

這是當前的.htaccess規則

RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?d=$1&n=$2 [QSA] 

有時候,也有一定的聯繫,如

/用戶/型材/用戶id = 2

但是,該規則被寫入重寫

/users/profiles

as

的index.php?d =用戶& N =型材

我怎樣才能改變規則,以便它可以選擇性地接受並添加額外的參數?

回答

0

以下規則將重寫users/profiles/userid=2index.php?d=users&n=profiles&userid=2。測試過,工作正常。

RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)=(\d+)$ index.php?d=$1&n=$2&$3=$4 [NC,QSA,L] 

如果你把你的現有規則凌駕於規則他們都將發揮很好(我已經修改現有規則位):

RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)=(\d+)$ index.php?d=$1&n=$2&$3=$4 [NC,QSA,L] 
RewriteRule ^([a-z]+)/([a-z]+)$ index.php?d=$1&n=$2 [NC,QSA,L] 
+0

然而,鏈接,例如/維基/家庭不再起作用。 – bear 2011-06-16 22:07:23

+0

不要刪除以前的規則,只需在下面(或上面)添加這一個 - 查看更新後的答案。 – LazyOne 2011-06-16 22:08:59

1

我沒有測試過,但是我覺得這應工作:

RewriteRule ^([A-Za-z]+)/([A-Za-z]+)/(.*)$ index.php?d=$1&n=$2&$3 [QSA] 

此:

/users/profiles/userid=2&something=3

應該變成這個樣子

index.php?d=users&n=profiles&userid=2&something=3

+0

如果沒有附加參數,則殺死它。 – bear 2011-06-16 22:06:11

+0

您應該將此規則與以前的規則結合使用。 @LazyOne已經向你解釋了一切:) – Karolis 2011-06-16 22:15:45