的意思 ?和$ in htaccess重写规则

时间:2016-09-26 13:41:21

标签: .htaccess mod-rewrite url-rewriting

我知道.htaccess文件中的基本重写规则。但是我找不到高亮度?$的含义:

RewriteRule ^([a-zA-Z] )/ ?([a-zA-Z] ? / ?([a -zA-Z0-9] *)? / ?$ index.php?controller = $ 1& action = $ 2& id = $ 3 [NC,L]

格式化规则代码:

RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L]

有人可以告诉他们在这里使用了什么。我在尝试自己,但无法在任何地方找到它。任何帮助将非常感激

1 个答案:

答案 0 :(得分:3)

这个问题更像是正则表达式而不是.htaccess。让我试着回答:

    正则表达式中的
  • ?表示0或1匹配或使某些内容可选匹配
  • $是正则表达式中的结束锚,表示输入的结束。

您的重写规则似乎使actionid组件都可选,此规则允许在漂亮URI的末尾添加可选的尾部斜杠。