我的服务器上有一个名为/files.php的文件
我无法直接访问它,而是使用.htaccess并将参数传递给它:
RewriteCond %{REQUEST_URI} ^/robots\.txt(\?.*)?$
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^ /files.php?file=%{REQUEST_URI} [L]
我想阻止人们直接访问此文件,但仍允许我的服务器在重写规则中使用它。理想情况下,如果用户尝试直接访问它,我想提出404错误。我想出了这个:
RedirectMatch 404 ^/files\.php
不幸的是,这条线也阻止了我的重写规则。
答案 0 :(得分:0)
尝试在htaccess
的顶部添加此内容RewriteEngine on
RewriteCond %{THE_REQUEST} /file\.php [NC]
RewriteRule ^ - [R=404,L]
如果直接访问/file.php,这将返回404错误。
%{THE_REQUEST}对于避免重写循环错误或规则的覆盖非常重要。