.htaccess |如果有特定参数,则不重定向

时间:2013-09-02 21:23:04

标签: .htaccess redirect mod-rewrite parameters rewrite

我现在正在做一个cms 现在我正在使用ajax实现

除了mod_rewrite问题之外,我已经运行了所有东西..

RewriteEngine On
RewriteRule \.html index.php [L]

这会将除html文件之外的任何内容重定向到index.php

我需要第二个规则,检查REQUEST_URI是否有参数,以防止整个网站被ajax加载。

我不认为这是可以理解的所以我只是发布我想要实现的目标^^

RewriteEngine On
RewriteCond %{REQUEST_URI} !(?rewrite=no$)
RewriteRule \.html index.php [L]

我希望除了html文件之外没有重定向任何内容,也没有重定向到url上的“(.html)?最后重写= no”

希望有人可以帮助我,因为重写和正则表达不是我最强的东西

提前致谢

1 个答案:

答案 0 :(得分:3)

来自the Apache docs

  

REQUEST_URI   请求的URI的路径组件,例如“/index.html”。这显然排除了查询字符串,该字符串可用作名为QUERY_STRING的自己的变量。

因此,您实际上希望匹配%{QUERY_STRING}而不是%{REQUEST_URI}。匹配条件时,请勿在查询字符串中包含?

RewriteEngine On
# Match the absence of rewrite=no in the query string
RewriteCond %{QUERY_STRING} !rewrite=no [NC]
# Then rewrite .html into index.php
RewriteRule \.html index.php [L]