当用户尝试直接访问文件时如何放置403页?(。htaccess)

时间:2015-02-02 10:28:19

标签: apache .htaccess mod-rewrite http-status-code-403

我正在使用apache服务器,请考虑这是我的网站:www.domain.com。

我将所有文件,图片,视频保存在子域中,如> http://sub.domain.com/file.jpg

我正在接收来自子域的所有文件(即图像,视频)。

如果有任何用户试图直接在地址栏(http://sub.domain.com/file.jpg)中访问我的文件,则应显示403禁止页面。

如果有任何用户想要访问我的网站(www.domian.com),它应该允许访问。

我尝试了以下.htaccess代码,

Options -Indexes
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sub.domain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?sub.domain.com.*$ [NC] 
RewriteRule \.(gif|jpg|png|avi|mp3|swf")$ - [F]

但问题是,当我访问我的网站时,它也会给出403禁止的结果。

更新

(domain.com)中的

index.html

 <html>
 <body>
   <h1>Example Page</h1>
   <img src="http://sub.domain.com/file.jpg">
 </body>
 </html>

输出:(当我试图访问&#34; domain.com&#34;)

Example Page

图片未加载。它显示403&#34; console&#34;。

1 个答案:

答案 0 :(得分:0)

http://将不会出现在引荐来源中,只会出现在域名中。请尝试以下方法:

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^(www\.)?sub\.domain\.com [NC] 
RewriteRule \.(gif|jpg|png|avi|mp3|swf)$ - [F]