繁体   English   中英

htaccess防止用户访问文件

[英]htaccess securing files from being accessed by users

因此,我敢肯定,这个问题在这里被问了很多,但是经过20分钟的搜索,我仍然找不到能产生正确结果的任何问题。

我有/index.php/dashboard.php等文件,这些文件使用了/framework/assets/stylesheets/index.css等资源文件。我想做的是阻止对/framework/任何文件的访问。 /framework/目录,但仍允许使用index.php和其他相应文件中的文件。 如何配置.htaccess文件以允许我执行此操作?

我了解这可能无法实现,但是目录/framework/是否有任何方式可以隐藏用户的某些PHP文件,但仍然可以使用include 'file.php'通过其他PHP脚本进行访问?

任何帮助将不胜感激。 谢谢。

由于您只想在运行特定的php脚本时使用css文件,因此可以在php中使用include指令并将其嵌入到其他html中。

像这样:

//...
<head>
    <style>
    <?php
        include("/framework/assets/stylesheets/index.css");
    ?>
    </style>
//...
</head>
//...

php文件不受htaccess的限制,您将其包含在服务器端,并仅向客户端提供所需的内容。

您不应阻止对CSS和JavaScript文件的访问。 如果这样做,则意味着您网站的设计将被破坏。 对于包含文件,请尝试以下规则。 将具有以下规则的.htaccess文件放在要禁止访问的include目录中。 这些规则仅允许对目录中包含的文件进行$_POST请求,并且您可以将一个文件包含到另一个文件中,从而限制对该文件的直接访问。

<LimitExcept POST>
order deny,allow
deny from all
</LimitExcept>

如Magnus Eriksson对原始问题的评论中所述,要实现我想要的CSS文件,JS文件和其他资源文件的效果是无法实现的,因为这些文件是直接由HTML提取的,并且因此使用http请求。

但是,可以通过将.htaccess文件放在/framework/目录中来保护PHP文件,该文件的内容为:

deny from all

要授予对/framework/assets/资源的访问权限,需要做的就是添加另一个.htaccess文件,并allow from all写入allow from all内容。

简单回答一个简单的问题。

进一步使用的文档: https : //httpd.apache.org/docs/2.2/howto/access.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM