2013-01-09 56 views
0

我用我的根本的.htaccess重定向一切的index.php.htaccess正确地阻止一个目录,另一个不正确。

RewriteEngine On 

RewriteRule !\.(mp3|js|ico|txt|gif|jpg|png|css)$ index.php 
在我的目录

随后的.htaccess我用这个来阻止直接访问

RewriteEngine On 

deny from all 

然后让我HTML5的音频播放,我把这个的.htaccess音频目录

RewriteEngine On 

deny from all 

allow from index 

但是,当我把同样的.htaccess文件在我的javascript目录,我没有存取权限s到我的js文件。为什么它可以用于音频目录,但不是这个?

在此先感谢! :-)

+0

如何将您的mp3文件加载到索引页?尝试直接从浏览器下载MP3文件。 – vmeln

+0

@ V.Melnychuk - 当你试图直接访问它时,我得到了一个403,这正是我想要的。我只是不明白为什么当我在我的js目录中使用相同的代码.htaccess然后没有我的js文件运行。 – whosmav

+0

答案在 – vmeln

回答

1

这是因为您从客户端计算机访问JavaScript文件。从服务器端加载MP3文件,它允许这种方法。这就是为什么你得到403禁止页面。尝试通过HTTP_REFERER否认它:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !\.(mp3|js|ico|txt|gif|jpg|png|css)$ [NC] 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteRule . - [F] 
+0

以下啊谢谢。我想这对于403限制我的JS文件可能没有什么意义,但这是解决方案。 :-D另外,%{REQUEST_FILENAME}和[NC]是什么?我需要那些东西吗?对不起,我是.htaccess的新手,如果这不是很明显 – whosmav

+1

[NC]意味着规则不区分大小写。 REQUEST_FILENAME - 与请求匹配的文件或脚本的完整本地文件系统路径,如果在引用REQUEST_FILENAME时已由服务器确定。来自Apache文档。 – vmeln