Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
主机、PHP、htaccess_Php_.htaccess_Host - Fatal编程技术网

主机、PHP、htaccess

主机、PHP、htaccess,php,.htaccess,host,Php,.htaccess,Host,我需要一些帮助 我正在阅读我的托管服务的安全建议,他们说,理想情况下,只需将 在我的根文件夹中索引文件和css、js和img等文件,并放置所有其他文件 关,就是上面一层 我试着在我的测试中这样做,但我遇到了一些问题。托管文件夹的结构是: / /htdocs 在/htdocs中,我放置了index.php文件,当通过url example.com/index.php访问它时,它正常工作 但是将其他测试文件从htdocs中删除是问题的根源。例如,如果我有一个名为contact.php的文件 我尝试

我需要一些帮助

我正在阅读我的托管服务的安全建议,他们说,理想情况下,只需将 在我的根文件夹中索引文件和css、js和img等文件,并放置所有其他文件 关,就是上面一层

我试着在我的测试中这样做,但我遇到了一些问题。托管文件夹的结构是:

/
/htdocs

在/htdocs中,我放置了index.php文件,当通过url example.com/index.php访问它时,它正常工作

但是将其他测试文件从htdocs中删除是问题的根源。例如,如果我有一个名为contact.php的文件 我尝试通过url example.com/contact.php访问它,我得到404错误消息

所以我要问的问题是:

是否可以访问htdocs之外的url文件,或者更好地将url访问的所有文件都放在htdocs内部 只在该文件夹外保留配置文件,如类、函数、数据库连接等

如果可以通过url访问文件,我将如何在htaccess中重写这些url

所有其他文件都应该放在一边

是的,这是很好的做法。但是,您误解了实现

您不能直接访问文档根目录以外的文件。但是你可以间接地访问它们。也就是说,web服务器看不到它们,但您的编程代码可以


理想情况下,您的站点将使用该模式。在这里,您的index.php文件将拦截每个请求,然后将其路由到正确的端点,从而服务于应用程序的每个页面。也就是说,您永远不会直接请求
/contact.php
,而是请求
/contact
,它将被导入
/index.php
,从文档根目录之外加载所需的资源。

听起来像
htdocs
是您的web根文件夹。所以文件夹中的任何内容都是面向外部的网站。该文件夹之外的任何内容都不面向外部。因此,按照设计,您不能通过URL直接访问web根目录之外的文件。@David谢谢您的评论。是的,htdocs是我的根文件夹。谢谢你的评论。你所说的正是我想做的,但我来这里是想征求比我更有经验的人的意见。从你的回答中,我看到我走在正确的道路上。再次感谢你的帮助。