我目前正在嘗試重寫一些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 =型材
我怎樣才能改變規則,以便它可以選擇性地接受並添加額外的參數?
我目前正在嘗試重寫一些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 =型材
我怎樣才能改變規則,以便它可以選擇性地接受並添加額外的參數?
以下規則將重寫users/profiles/userid=2
至index.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]
我沒有測試過,但是我覺得這應工作:
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
然而,鏈接,例如/維基/家庭不再起作用。 – bear 2011-06-16 22:07:23
不要刪除以前的規則,只需在下面(或上面)添加這一個 - 查看更新後的答案。 – LazyOne 2011-06-16 22:08:59