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

当且仅当url中没有参数q=时,我如何让mod\u rewrite执行RewriteRules?

  •  0
  • significance  · 技术社区  · 14 年前

    下面的代码可以用来处理我的url结构,但是如果url中有参数q=,我需要规则不能工作。

    我试图设置一个rewritecond(在下面注释掉的行中),但没有成功,

    请帮帮我!谢谢:)

    Options +FollowSymlinks
    RewriteEngine on
    
    # RewriteCond %{QUERY_STRING} q!=(.*)
    RewriteRule ^FSD/([^/]+)/([^/]+)/ /index.php?service=$1&type=FSD [NC]
    RewriteRule ^ECD/([^/]+)/([^/]+)/ /index.php?service=$1&type=ECD [NC]
    RewriteRule ^([^/]+)/([^/]+)/ /index.php?category=$1&subcategory=$2 [NC]
    RewriteRule ^([^/]+)/ /index.php?category=$1 [NC]
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   Tim Stone    14 年前

    你的 RewriteCond 的测试模式有点不合适,但您的想法是正确的:

    RewriteCond %{QUERY_STRING} !(\A|&)q=.*
    

    只适用于下一个 RewriteRule ,因此,如果要对所有四个规则执行此排除,则需要复制 重写条件 在每一个上面。