开发者

htaccess rewriting

I'm currently trying to rewrite some URLs, and they all follow a basic for开发者_运维百科mat.

Here is the current .htaccess rule

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

Sometimes, there are some links, such as

/users/profiles/userid=2

But, the rule is written to rewrite

/users/profiles

as

index.php?d=users&n=profiles

How can I change the rule so that it can optionally accept and add extra parameters?


I haven't tested, but I think this should work:

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

This:

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

should become like this

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


The rule below will rewrite users/profiles/userid=2 to index.php?d=users&n=profiles&userid=2. Tested, working fine.

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

If you add the above rule above your existing rule they both will play nicely (I have modified your existing rule a bit):

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜