2

我有一个目录files,其中包含我不想直接访问的文件。如果您访问 www.mywebiste.com/files/myfile.pdf,那么您将被重定向。

但是,我希望可以从站点的其余部分访问这些文件。IE。我可能有一个页面 www.mywebiste.com/dave/page/ 需要能够显示文件目录中的文件。

我在文件目录中尝试了以下 htacccess ,但它不起作用:

RewriteEngine ON
RewriteCond %{HTTP_REFERER} ^http://www.mywebiste.com/files/ [NC]
RewriteRule ^.*$ - [R=404,L]
  • 如果我能让这个工作,我认为这也会阻止文件被机器人索引,因为它们也会被重定向?
4

1 回答 1

4
Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_REFERER} ^$
RewriteRule ^files/.*$ - [F]

您还可以使用:

RewriteCond %{HTTP_REFERER} !^http://(www.)?mywebiste.com/.*$ [NC]
RewriteRule ^files/.*$ - [F]

由于引用来自页面,因此它被称为页面可以是您域中的任何内容,所以我简单地使用,如果您觉得更舒服,^http://(www.)?mywebiste.com/.*$您也可以使用。^http://(www.)?mywebiste.com如果引用为空且文件夹为文件,则拒绝访问它。

PS:http://(www.)?mywebiste.com表示站点地址有www.或没有。


至于机器人,即使引用为空,您也可以使用用户代理来允许访问。

robots.txt例子:

User-agent: *
Disallow: /files/

更多信息robots.txt请参见此处。

于 2013-08-10T19:27:14.840 回答