我尝试将.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
按原样阅读{{1}}。上面的代码中是否有语法或错误?
...谢谢
答案 0 :(得分:1)
从规则中排除my_file.txt
的方法如下:
# Insert the next line
RewriteCond %{REQUEST_URI} !my_file\.txt [NC]
RewriteCond %{REQUEST_FILENAME} -s
RewriteRule ^.*$ - [NC,L]
答案 1 :(得分: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与此模式不匹配''。