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

.htaccess问题

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

    假设我有以下.htaccess文件:

    RewriteEngine On
    
    RewriteCond %{HTTP_COOKIE} name=value [NC]
    RewriteRule ^image01.gif$ http://www.domain.tld/images/partner/image01.gif [NC,QSA]
    
    RewriteCond %{HTTP_COOKIE} name=value [NC]
    RewriteRule ^image02.gif$ http://www.domain.tld/images/partner/image02.gif [NC,QSA]
    

    NC QSA 意思是?

    RewriteCond 两次使用一次,两种都适用 RewriteRule

    最后,如果上面的.htaccess位于 http://www.domain.tld/images/ 为什么像这样的重写规则不起作用?:

    RewriteRule ^image02.gif$ /images/partner/image02.gif [NC,QSA]

    或者这个?:

    RewriteRule ^image02.gif$ partner/image02.gif [NC,QSA]

    2 回复  |  直到 14 年前
        1
  •  4
  •   Álvaro González    14 年前

    方括号选项记录在 RewriteRule manual page :

    “no case | NC”(无案例):

    当模式与当前URL匹配时,介于“A-Z”和“A-Z”之间。

    'qsappend | QSA'(查询字符串追加):

    此标志强制重写引擎附加查询字符串部分 替换字符串的 它。如果您想添加更多


    据我所知 RewriteCond directives 影响它们前面的重写规则。如果在主confing文件中设置规则,则可以在文件中写入公共指令,然后 include .htaccess 文件,对不起。


    你的指示对我有效,尽管你可能是说:

    RewriteRule ^image02\.gif$ /images/partner/image02.gif [NC,QSA]
    

        2
  •  1
  •   imbadatjquery    14 年前

    NC不适用于任何情况,这意味着它可以是大写或小写,它将带您到同一页。

    QSA用于查询字符串追加。对这个不太确定,但是快速搜索 http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

    推荐文章