从外部web根目录在Apache服务器上运行一个Html文件
我有一个文件夹,其中包含各种文件夹中的HTML,CSS,JS,图像文件。出于安全原因,我想将它放在Web根目录之外。从外部web根目录在Apache服务器上运行一个Html文件
我遇到了使用PHP的file_get_contents
函数的解决方案。
但是,在页面中存在超链接存在问题。例如,链接到JavaScript文件中的页面:在http://localhost/lms/APIConstants.js
<script src="lms/APIConstants.js" type="text/javascript"></script>
搜索文件,并返回
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost/lms/APIConstants.js
错误我知道使用.htaccess文件的隐藏一些文件夹从web根目录。我正在寻找其他有见解的解决方案。
终于解决了这个问题..可能对别人有帮助。
的步骤,随访:
- 使用一个单独的文件从外部Web根目录读取(说filereader.php)。
- 使用编码本地文件路径的URL调用此文件。 http://localhost.ca/lms/filereader.php/path/to/local/file.html
- 解析URL,以获取路径 -
/path/to/local/file.html
- 应用PHP的
readfile()
功能所获得的路径来读取。
这样做,file.html
中的所有超链接从以下路径加载。
MIME类型的每个文件具有被定义。当找不到文件时,也会使用PHP的http_response_code()
引发正确的http响应代码。
注意:您可能需要在Apache配置中启用AcceptPathInfo
。
确保只有某些文件可以从filereader读取。否则,可以使用简单的获取请求来读取诸如日志之类的文件,这可能存在安全风险。 – cnvzmxcvmcx 2014-11-12 15:27:25
当你包含一个文件时,代码/脚本根据它所包含的新路径运行。
它找到APIConstants.js文件到文件夹Ims它位于根目录中。 但实际上它位于根目录之外。
所以给出这样的路径。如果Ims文件夹是一步到根目录。
src="../lms/APIConstants.js"
然后让它成为一个完整的url – 2014-11-05 06:29:27
这可能会帮助你http://stackoverflow.com/questions/13550471/php-include-file-in-webroot-from-file-outside-webroot – Chella 2014-11-05 06:33:56
我不能那样做,这个HTML,CSS,JS文件是自动生成的。 – Aniruddha 2014-11-05 06:34:03