2

谁能解释一下以下两行?

RewriteEngine on
RewriteRule ^(.*)-(.*)-(.*)$   index.php?page=$1&id=$2&im=$3

我希望是一个详细的解释,因为我对 .htaccess 文件一无所知。

任何机构都可以帮助我吗?我很感激任何建议..谢谢..

4

2 回答 2

2

该规则是所谓的正则表达式,其中每个组都在括号中。点是一个随机字符,可以用星号修改 0...n 次。加号表示 1...n。如果没有添加修饰符,它只需要一个字符。

不确定蒂姆库珀是否犯了错误,但我在这里回应原始的重写规则(^(.)-(.)-(.*)$):

该规则采用如下 URL:http ://example.com/ab-def并将其重定向到:index.php?page=a&id=b&im=def

您还应该知道,没有正确模式的输入将不匹配,因此 URL http://example.com/aaa-bb-def将不起作用。

于 2012-09-28T18:41:19.623 回答
2

RewriteRule 主要包含 3 个所以称之为部分:

  1. ^(.*)-(.*)-(.*)$ 这是您的网址将被重写的规则
  2. index.php?page=$1&id=$2&im=$3 是要重写的 url 规则
  3. 在第二条规则之后,您可以添加一些重定向类型[R=301] ,这意味着它是永久重定向

所以基本上你的规则将产生:
http://domain.com/pagenumber-idnumber-imdefinition
来自
http://domain.com/index.php?page=pagenumber&id=idnumber&im=imdefinition

我希望我很清楚...

于 2012-09-28T18:46:20.377 回答