我想使用mod_rewrite
来阻止对文件的访问。
我们以index.html
为例。
我知道您可以使用FileMatch
,但我想使用mod_rewrite
来执行此操作。
我尝试过这样的事情:
RewriteEngine On
RewriteCond %(REQUEST_URI} !^/index\.html$
RewriteRule (.*) - [L]
但这不起作用,如何存档?
答案 0 :(得分:0)
您可以使用F
标志拒绝访问给定文件:
RewriteEngine On
RewriteRule ^index.html$ - [F]
拒绝访问以.pdf
结尾的任何文件:
RewriteRule \.pdf$ - [F]
答案 1 :(得分:0)
如果您的文件曾经存在,则有几个选项。而不是向浏览器,搜索引擎或用户说“拒绝访问”。如果您删除了该文件但没有其他文件可以使用该文件,则可以使用410 Gone
标志以G
错误进行响应。
RewriteRule ^yourfile.html$ - [G,L]
如果它在某个目录中,那么你也必须包含该目录,但由于我们使用.htaccess
,我们不需要前面的斜杠。
RewriteRule ^some-directory/yourfile.html$ - [G,L]
如果您移动了该文件,那么您可以使用301 Redirect
响应来让用户,搜索引擎以及其他所有人知道该文件具有新的永久位置
RewriteRule ^old-directory/yourfile.html$ new-directory/yourfile.html [R=301,L]
如果您想告诉别人该文件仍然存在但由于它现在具有特权而无法访问该文件,那么您可以使用403 forbidden
来回复该文件的请求。
RewriteRule ^some-directory/yourfile.html$ - [F,L]