1

我试图将.htaccess规则写成如下特定REQUEST_FILENAME的:

RewriteCond %{REQUEST_FILENAME} ^/my_file.txt
RewriteRule ^.*$ - [NC,L]

这个特定的文件是 0kb 文件大小。我已经有一条规则可以忽略这些文件,例如

`RewriteCond %{REQUEST_FILENAME} -s     
 RewriteRule ^.*$ - [NC,L]` 

此空文件用于分析用途。

但这不像我预期的那样工作。我只想按REQUEST_FILENAME原样my_file.txt阅读。上面的代码中是否有任何语法或错误?

谢谢...

4

2 回答 2

1

从规则中排除的方法my_file.txt是这样的:

# Insert the next line
RewriteCond %{REQUEST_URI} !my_file\.txt [NC]
RewriteCond %{REQUEST_FILENAME} -s     
RewriteRule ^.*$ - [NC,L]
于 2013-02-26T06:49:27.657 回答
0

更好的:

RewriteCond %{REQUEST_FILENAME} -s
RewriteRule !^/?my_file\.txt - [NC,L]

这将匹配除 my_file.txt 之外的所有文件,如果是 0size 文件,则重写结束。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

在 mod_rewrite 中,NOT 字符 ('!') 也可用作可能的模式前缀。这使您能够否定模式;比如说:“如果当前 URL 不匹配这个模式”。

于 2013-02-26T12:19:08.573 回答