2013-05-25 34 views
2

我用下面的规则htaccess的重写规则的多个参数

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

改写

www.mysite.com/123

www.mysite.com/index.php?action=123

这需要保持这样的,但也有在那里我还需要重写

www.mysite.com/123/abc

情况

www.mysite.com/index.php?action=123 & example = abc

我该如何做到这一点?谢谢!

回答

1

启用mod_rewrite的,并通过httpd.conf的.htaccess,然后把这个代码在你.htaccessDOCUMENT_ROOT目录:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^([^/]+)/([^/]+)/?$ index.php?action=$1&example=$2 [L,QSA] 

RewriteRule ^([^/]+)/?$ index.php?action=$1 [L,QSA] 
+0

,似乎工作,谢谢你,但你可以解释为什么你改变了我行新(在你的文章中的最后)? –

+0

当我接近我的电脑时,确定我会为我的回答添加一些解释。此外,如果它的工作可以标记为接受。 – anubhava

+0

刚回来。你的规则有两个问题:1.不使用'L'标志(标记规则结束)和2.将2个规则组合成1不是一个好主意,否则有时可能会将'example'参数设置为null。 – anubhava