我一直在尝试重组网站的文件夹结构,以使用户无法通过URL访问某些目录或文件,并根据此答案将这些文件夹移至根文件夹之外。由于我正在本地服务器(xampp)上进行测试,因此我在httpd文件中对此进行了更改:
DocumentRoot "C:/xampp/htdocs/website"
<Directory "C:/xampp/htdocs/website">...</Directory>
现在我的网站的文件夹结构如下所示:
htdocs
css
styles.css
includes
header.php
website
index.php
localhost
正确输入浏览器会显示index.php
,其中包括带有的标题include '../includes/header.php';
。在header.php
我尝试像这样链接我的CSS文件时:
<link rel="stylesheet" type="text/css" href="../css/styles.css">
我认为这将只是从上一个目录includes
或website
到css
自认为已经为我所有的包括工作,但不管是什么我已经试过(包括其他链接)我不能让我的CSS工作,除非我把css
里面的文件夹中的某处根目录。我还尝试过垃圾邮件发送CTRL+F5
,在每个主要的浏览器中打开我的网站,然后重新启动Apache。
我敢肯定,对此我必须忽略一个简单的解释。
php include是由php解释器本身完成的(它可以访问所有系统),访问您网站的用户无法修改它,该用户甚至不知道也不知道,因为他没有访问权限对此。
但是出于明显的安全原因,您不能让用户访问父目录。试想一下,是否有人可以请求../../../home/youruser/
并指向服务器上的任何文件!那将是疯狂的,并且是一个非常大的安全漏洞。
您只是无法在执行请求时从DocumentRoot路径上移。
您必须将css
文件夹移动到内部website
并使用指向它/css/style.css
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句