.htaccess mod_重写,不同的get参数,如何区分

.htaccess mod_重写,不同的get参数,如何区分,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,很抱歉问了一个明显的问题,但我已经搜索了很多,似乎无法让这个工作 我正在重写的两个URL示例: mydomain.com/search/searchword/ mydomain.com/index.php?page=search&sw=searchword AND mydomain.com/lists/12345/ mydomain.com/index.php?page=lists&id=12345 我可以让他们中的一个一起工作: RewriteRule ^([a-zA-Z0-

很抱歉问了一个明显的问题,但我已经搜索了很多,似乎无法让这个工作

我正在重写的两个URL示例:

mydomain.com/search/searchword/
mydomain.com/index.php?page=search&sw=searchword
AND
mydomain.com/lists/12345/
mydomain.com/index.php?page=lists&id=12345
我可以让他们中的一个一起工作:

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?page=$1&sw=$2
但如果我再加一行,第二行就不行了:

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?page=$1&sw=$2
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?page=$1&id=$2
我能不能换个条件说,如果一个参数是id,做这个,如果是sw,做那个?或者你通常如何解决这个问题

RewriteRule ^([a-zA-Z0-9]+)/([0-9]+)/$ index.php?page=$1&id=$2 
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?page=$1&sw=$2
上面的代码应该可以工作。我所做的是将
id
行移到
sw
行上方,并将第二个括号中的内容从
([a-zA-Z0-9]+)
更改为
([0-9]+)
,因为
id
将只包含数字而不包含字母。因此,第一行将被执行(我不确定这是正确的术语),如果第二个文件夹中只有数字,那么它将是一个id,否则它是一个搜索术语并使用该名称

编辑:


这确实有效。但我想知道这样做是否正确?因为如果两者都是用字母写的呢。。。然后呢?谢谢。因为我有这样的网址,每种都不止一个,我也很高兴能有更多的答案。没有重写的条件吗?谢谢。我已经编辑了我的答案,id现在可以包含字母或数字。至于你的第二个评论。到目前为止,我还不是一个专家,所以问另一个问题(和/或研究/谷歌搜索一下)可能会得到答案。谢谢你,我很快就会试试这个。
RewriteRule ^lists/([a-zA-Z0-9]+)/$ index.php?page=$1&id=$2 
RewriteRule ^search/([a-zA-Z0-9]+)/$ index.php?page=$1&sw=$2