.htaccess文件:是否可以为规则指定子目录位置?

时间:2014-04-16 20:29:04

标签: html apache .htaccess

我的旧网站是通过手动编码HTML构建的,目录结构如下:

public_html
   .htaccess
   index.html
   ...
   content_folder
   docs_folder
      .htaccess
      doc1.html
      doc2.html
      doc3.html
   ...

我的新网站是使用CMS将其网页存储在数据库中构建的,因此没有像上面所示的传统网站目录结构。

上面的public_html/docs_folder/.htaccess文件包含以下规则:

# Only permit access from links coming from my website (e.g.http://www.mydomain.com).
SetEnvIf Referer http://www.mydomain.com internal 
<Files *> 
   order Deny,Allow 
   Deny from all 
   Allow from env=internal 
</Files> 

由于新网站中没有目录结构,我想知道我是否可以包含上述public_html/docs_folder/.htaccess规则,这些规则仅适用于docs_folder中的网页目录(以及任何子目录中的网页),而不是public_html/.htaccess文件。

是否有<location>属性或其他方法在.htaccess文件中包含规则但是它适用于子目录而不是.htaccess文件所在的当前目录?

有人可以使用上述规则举例吗?

此外,上面使用的<Files *>是否涵盖所有文件(.html,.pdf,.css等)?我希望如此。

1 个答案:

答案 0 :(得分:1)

尝试在根目录中的htaccess文件中添加:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https?://yourdomain\.com [NC]
RewriteRule ^docs_folder/ - [L,F]

您需要删除/docs_folder/

中的htaccess文件