我希望以一种方式实现.htaccess,使我的某些文件类型(如.js或.css )不能通过直接访问(如www.example.com/path/to/style.css )来打开。这应该是一个403错误,但是如果需要的话,浏览器可以读取这个文件。
下面是我实现的代码,它在本地服务器上工作,但当我将页面上传到主服务器时就不行了。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC]
RewriteRule \.(js|css|jpg|png)$ - [F]编辑:我刚刚做了一个尝试,并尝试了这个,它对我有效!
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC]
RewriteRule \.(js|css|jpg|png)$ - [F]这比我想的要容易得多,我的想法也可以归功于Andy Holmes。
发布于 2013-10-28 00:42:56
这就是我所提供的答案,将mydomain.com添加为另一个域,从字面上说,您可以添加任意数量的域,并且可以为每个apache服务器添加相同的.htaccess。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1 [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com.*$ [NC]
RewriteRule \.(js|css|jpg|png)$ - [F]发布于 2013-10-28 00:02:45
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?127.0.0.1.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com.*$ [NC]
RewriteRule \.(png|jpg|jpeg|css|js)$ - [F,NS,L]试试看,这是我唯一的建议
发布于 2013-10-28 00:16:01
RedirectMatch 403 ^.*/images/*\.jpg$
RedirectMatch 403 ^.*/images/*\.jpeg$
RedirectMatch 403 ^.*/images/*\.png$
RedirectMatch 403 ^.*/styles/*\.css$
RedirectMatch 403 ^.*/js/*\.js$我不知道你如何组织你的文件夹等,但尝试这个,显然改变适合你的文件夹结构。它应该允许在站点上显示图像,但不能直接访问。
https://stackoverflow.com/questions/19625049
复制相似问题