【问题标题】:RewriteRule explanation重写规则解释
【发布时间】:2012-09-28 18:38:39
【问题描述】:

谁能解释一下以下两行?

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

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

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

【问题讨论】:

    标签: php .htaccess mod-rewrite localhost


    【解决方案1】:

    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

    我希望我是清楚的......

    【讨论】:

      【解决方案2】:

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

      不确定 Tim Cooper 是否犯了错误,但我在此回复原始重写规则 (^(.)-(.)-(.*)$):

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

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

      【讨论】:

      猜你喜欢
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      相关资源
      最近更新 更多