.htaccess问题

时间:2010-10-25 16:06:08

标签: .htaccess mod-rewrite

说我有以下.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]

NCQSA的含义是什么?

此外,不是重复相同的RewriteCond两次,而是仅使用它一次,并将其应用于RewriteRule两个?

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

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

或许这个?:

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

2 个答案:

答案 0 :(得分:4)

方括号选项记录在RewriteRule manual page

'nocase | NC'(无案例):

  

这使得Pattern不区分大小写,忽略了差异   当Pattern与当前URL匹配时,在'A-Z'和'a-z'之间。

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

  

此标志强制重写引擎附加查询字符串部分   取代字符串的   现有的字符串,而不是替换   它。如果要添加更多内容,请使用此选项   通过重写将数据写入查询字符串   规则。


据我所知,RewriteCond directives会影响他们之前的RewriteRule。如果您在主配置文件中设置规则,您可以在文件中编写公共指令并include多次,但这不是.htaccess文件中的选项,抱歉。


你的指示对我有用,虽然你可能是这个意思:

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

你是如何准确测试的?

答案 1 :(得分:1)

NC适用于No Case,意味着它可以是大写或小写,它会将您带到同一页面。

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