所以,我确定这个问题在这里得到了很多询问,但经过20分钟的搜索,我找不到任何可以产生正确结果的问题。
我有/index.php
和/dashboard.php
等使用资源文件的文件,例如/framework/assets/stylesheets/index.css
等。我想要阻止访问/framework/
中的任何文件{1}}目录,但仍允许从index.php
和其他相应文件中使用它们。如何配置我的.htaccess文件以允许我这样做?
我知道这可能是不可能的,但有没有办法将包含一些PHP文件的目录/framework/
从用户隐藏,但仍允许使用{{1通过其他PHP脚本访问}}?
非常感谢任何帮助。感谢。
答案 0 :(得分:1)
由于您希望css文件仅在运行特定php脚本时可用,因此您可以在php中使用include指令并将其嵌入到其他html中。
这样的事情:
//...
<head>
<style>
<?php
include("/framework/assets/stylesheets/index.css");
?>
</style>
//...
</head>
//...
php-files不受htaccess的限制,你将其包含在服务器端,只提供你想要的东西给客户。
答案 1 :(得分:1)
您不应该阻止访问CSS和JavaScript文件。如果您这样做,则意味着您网站的设计将会中断。对于包含文件,请尝试以下规则。将包含以下规则的.htaccess
文件放在要禁止访问的包含目录中。这些规则仅允许对目录中包含的文件发出$_POST
个请求,并且您可以将一个文件包含在另一个文件中,从而限制对该包含文件的直接访问。
<LimitExcept POST>
order deny,allow
deny from all
</LimitExcept>
答案 2 :(得分:0)
正如Magnus Eriksson对原始问题的评论所述,要实现我想要的CSS文件,JS文件和其他资源文件的效果是无法完成的,因为这些文件是由HTML,因此使用http请求。
但是,通过将.htaccess文件放在/framework/
目录中,其内容为:
deny from all
要授予/framework/assets/
中资源的访问权限,所有需要做的就是添加另一个.htaccess文件,其中写有allow from all
。
简单回答一个简单的问题。
进一步使用的文件: https://httpd.apache.org/docs/2.2/howto/access.html