Apache 重写规则之间的差异
你能给我解释一下这些重写规则之间的区别吗Apache 重写规则之间的差异,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,你能给我解释一下这些重写规则之间的区别吗 rewriterule ^news/category/(.*)/([0-9]+)/?$ index.php?p=news&category=$1&page=$2 [L,QSA] rewriterule ^news/category/(.+)/([0-9]+)/*$ index.php?p=news&category=$1&page=$2 [L,QSA] .*和.+之间的差异以及/?$和/*$之间的差异 及 .
rewriterule ^news/category/(.*)/([0-9]+)/?$ index.php?p=news&category=$1&page=$2 [L,QSA]
rewriterule ^news/category/(.+)/([0-9]+)/*$ index.php?p=news&category=$1&page=$2 [L,QSA]
.*和.+之间的差异以及/?$和/*$之间的差异
及
.*和.+??之间的差异
谢谢你的帮助 *在零次和无限次之间进行匹配,根据需要尽可能多次回馈
.+在一次和无限次之间匹配,根据需要尽可能多次回馈
.+? 在一次和无限次之间进行匹配,根据需要尽可能少地扩展
转到以调试您的正则表达式
/?$和/*$我不确定。它总是匹配的。你有格特的技术答案。 我的非技术性建议是: 第1行:如果URL有一个字符串或无,后跟一个斜杠和一个数字或无,以/或否结尾,则应用重写规则 第2行:如果URL有一个字符串,后跟一个斜杠和一个数字或什么都没有,以whatever结尾,那么应用重写规则 以下是您可能遇到的URL问题: 对于1,这将被视为有效:news/category//548/。 对于2,这将被视为有效:news/category/whatever/548/this-is-a-problematic564string。 您可以将相同的原则应用于第二个比较/问题
rewriterule ^news/category/(.*)/?$ index.php?p=news&category=$1 [L,QSA]
rewriterule ^news/category/(.+?)/*$ index.php?p=news&category=$1 [L,QSA]