代码之家  ›  专栏  ›  技术社区  ›  Ivar

htaccess:重写冲突-简单问题

  •  1
  • Ivar  · 技术社区  · 14 年前

    这一行肯定会引起一些冲突,因为它会试图重写目标本身:

    RewriteRule ^/(.*)$ page.php?q=$1 [L,NC]
    

    现在,我该如何预防呢?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Gumbo    14 年前

    只需添加匹配字符串与目标字符串不同的条件:

    RewriteCond $1 !=page.php
    RewriteRule ^/(.*)$ page.php?q=$1 [L]
    

    这里 != 在里面 RewriteCond 指示否定的词典比较,而不是隐含的正则表达式比较。

        2
  •  0
  •   Lekensteyn    14 年前

    使用条件重写:

    RewriteCond %{REQUEST_URI} !^page.php?
    RewriteRule ^/(.*)$ page.php?q=$1 [L,NC]