Apache 重写两个变量时的mod_重写问题

Apache 重写两个变量时的mod_重写问题,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我的网站url如下: /team.php?name=任何团队名称&tid=200 要覆盖到/teams/任何团队名称/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/an

我的网站url如下:
/team.php?name=任何团队名称&tid=200

要覆盖到
/teams/任何团队名称/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]
足以实现它吗?

试试这个:

RewriteEngine On
RewriteRule ^teams/([A-Za-z\-_]+)/([0-9]+)/? team.php?name=$1&tid=$2 [NC,QSA,L]
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]
在团队名称上使用此模式
[A-Za-z\-\
,您没有在模式
[A-Za-z]
中包含
-
。实际上,您的url中有连字符
-

请尝试以下操作:

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

同样,在上面的示例中,您也出现了一个错误,您从
(0-9]+)

中丢失了一个
[

否,这将产生相同的未找到页面。还可以尝试此重写规则^teams/(.*)/*(.*)/*$team.php?&tid=$1&name=$2[NC,QSA,L],这样会打开页面,但在/teams/200/任何名称/Ty时只传递数组([tid]=>200[name]=>),不正常。在打电话给team/name/200/got 404之后,我的服务器配置可能有什么问题吗?Np,请随意回答,以便其他像您这样有问题的人可以看到您是如何解决的。