如何为特定文件提供.htaccess RewriteRule?

时间:2013-02-26 06:24:55

标签: .htaccess mod-rewrite

我尝试将.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}}。上面的代码中是否有语法或错误?

...谢谢

2 个答案:

答案 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与此模式不匹配''。

相关问题