重写两个变量时出现mod_rewrite问题

时间:2014-03-30 22:28:30

标签: apache .htaccess mod-rewrite

我有这样的网站网址: /team.php?name=any-team-name&tid=200

想要覆盖/teams/any-team-name/200/

使用此规则:

RewriteEngine On
RewriteRule ^teams/([A-Za-z]+)/(0-9]+)/? team.php?name=$1&tid=$2 [QSA,L]

在浏览器中获取此结果: 在此服务器上找不到请求的URL /teams/any-team-name/200/

此外,我还必须使用一些未经批准的变量,例如

/teams/any-team-name/200/&viewall=1&filter=1&home=1&away=1#history

[QSA,L]是否足以实现它?

2 个答案:

答案 0 :(得分:1)

试试这个:

RewriteEngine On
RewriteRule ^team/([A-Za-z\-_]+)/([0-9]+)/([A-Za-z0-9\-\&\=_]+)/? /team.php?name=$1&tid=$2$3 [QSA,L]

RewriteRule ^team/([A-Za-z\-_]+)/([0-9]+)/? /team.php?name=$1&tid=$2 [QSA,L]

同样在上面的示例中,您遇到了错误,您错过了来自[的{​​{1}}

答案 1 :(得分:0)

试试这个:

RewriteEngine On
RewriteRule ^teams/([A-Za-z\-_]+)/([0-9]+)/? team.php?name=$1&tid=$2 [NC,QSA,L]

在团队名称[A-Za-z\-_]上使用此模式,您没有在模式-中包含[A-Za-z]。实际上你的网址中有连字符-