很抱歉要问一个明显的问题,但我已经搜索了很多,似乎无法让这个工作。
我正在重写的两个网址示例:
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
我可以把一些RewriteCond说,如果一个参数是id,那么这样做,如果是sw,那么这样做?或者你通常如何解决这个问题?
答案 0 :(得分:0)
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,否则它是一个搜索词,用那个。
编辑:
RewriteRule ^lists/([a-zA-Z0-9]+)/$ index.php?page=$1&id=$2
RewriteRule ^search/([a-zA-Z0-9]+)/$ index.php?page=$1&sw=$2