如果直接从URL打开,则使用htaccess拒绝访问js文件

时间:2012-05-18 23:06:16

标签: apache .htaccess

我是htaccess的菜鸟,所以我想要一些帮助!  我想拒绝访问js文件,如果它是从url bar ex打开的(当我在地址栏中输入http://mysite.com/js/jquery.js时 - 我得到403)但是当浏览器呈现该网站时它被下载到浏览器通常。

目前我正在尝试这个

   <Files ~ "(.js|.css)">
    Order allow,deny
    deny from all
    </Files>

但是这会阻止浏览器使用css和js所以我想制定一种规则来让浏览器而不是任何人直接来自网址。在这种情况下,可以使用引用者或主持人或类似的东西吗?

(注意:我不想阻止客户端查看js代码,因为他们无论如何都可以这样做,但我有我的理由)

3 个答案:

答案 0 :(得分:3)

这与防止图像热链接相同。请参阅http://altlab.com/htaccess_tutorial.html

即:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteRule .*\.(js|css)$ - [F]

答案 1 :(得分:1)

在index.php中设置一个Cookie值,表示您的js.php文件(将您的js代码存储在php文件中并将其回显给浏览器)如果在您的主页上发出了请求。如果未设置cookie,则发送404否则回显js代码。

答案 2 :(得分:0)

Reddit帖子https://stackoverflow.com/a/10660862/4766489 正确答案:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?mysite\.com/ [NC]
RewriteRule .*\.(js|css)$ - [NC,F,L]