mod_rewrite忽略现有文件

时间:2012-12-19 08:17:02

标签: apache mod-rewrite

有许多类似的问题,但没有一个有用。 我的.htaccess

中有以下规则
RewriteRule ^images/.*$ - [F]

所以对于像/ images / goods /或/images/nonexistentfile.jpg这样的文件夹我得到'禁止'这就是我想要的。问题是如果请求存在的文件,我的规则将被忽略并提供文件。事实上,如果我在.htaccess中犯了一个故意的错误,我就不会像申请文件夹或不存在的文件时那样得到内部服务器错误。我应该寻找什么?


apache2.conf

<VirtualHost 1.2.3.4:8080>
    ServerName domain.com
    DocumentRoot /var/www/s3/data/www/domain.com
    SuexecUserGroup s3 s3
    CustomLog /var/www/httpd-logs/domain.com.access.log combin$
    ErrorLog /var/www/httpd-logs/domain.com.error.log
    ServerAlias www.domain.com
    ServerAdmin example@domain.com
    AddDefaultCharset utf-8
    php_admin_value open_basedir "/var/www/s3/data:.:/tmp"
    php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f example@domain.com
    php_admin_value upload_tmp_dir "/var/www/s3/data/mod-tmp"
    php_admin_value session.save_path "/var/www/s3/data/mod-tmp"
    AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
    AddType application/x-httpd-php-source .phps
</VirtualHost>

我应该在这里发布什么?

3 个答案:

答案 0 :(得分:0)

我有类似的问题。 我将以下.htaccess放入images文件夹中以禁止访问jpg文件(在我的情况下)

IndexIgnore */*
<Files ~ ".*\.jpg$">
    Order deny,allow
    Deny from all
</Files>

答案 1 :(得分:0)

看起来你的htaccess文件没有被应用。尝试在vhost配置中添加AllowOverride directive

<Directory "/var/www/s3/data/www/domain.com/">
    AllowOverride All
</Directory>

默认情况下,AllowOverride应设置为All,但您的主机可能会将其设置为服务器配置级别的其他内容。

答案 2 :(得分:0)

万一有人有同样的问题,这是非常微不足道的。默认的ISPManager安装将nginx放在Apache前面以获取静态文件...