.htaccess Htaccess RewriteRule为不同的url创建相似的链接

bnlyeluc  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(169)

我在使用这些规则时遇到了问题:

RewriteRule ^([a-z-]+)/([a-z-]+)-([0-9]+)$ /all.php?name=$1&m=$2&y=$3 [L,QSA,NC]

RewriteRule ^([a-z-]+)/year-([0-9]+)$ /year.php?name=$1&y=$2 [L,QSA,NC]

第二条规则行不通
当我尝试:/james/year-2023时,它将基于第一个规则工作。
如何使/james/january-2023与第一个规则一起工作,而/james/year-2023与第二个规则一起工作?
谢谢大家!

qxsslcnc

qxsslcnc1#

因为第一个规则中的正则表达式更通用,并且匹配您期望被第二个规则匹配的URL。
你只需要颠倒这两个规则,所以更具体的规则是第一个:

RewriteRule ^([a-z-]+)/year-([0-9]+)$ /year.php?name=$1&y=$2 [L,QSA,NC]

RewriteRule ^([a-z-]+)/([a-z-]+)-([0-9]+)$ /all.php?name=$1&m=$2&y=$3 [L,QSA,NC]

相关问题