【问题标题】:Host, PHP, htaccess主机、PHP、htaccess
【发布时间】:2018-10-15 13:48:44
【问题描述】:

我需要一些帮助。

我正在阅读我的托管服务的安全建议,他们说理想情况下只需将 我的根文件夹中的 index 文件和 css、js 和 img 等文件,并且所有其他文件都应放置 off,即上一级。

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

/
/htdocs

在 /htdocs 里面我放了 index.php 文件,当通过 url exemple.com/index.php 访问它时可以正常工作。

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

所以我要问的问题是:

是否可以访问 htdocs 之外的 url 文件,或者最好将所有将通过 url 访问的文件放在里面 htdocs 并且只保留此文件夹之外的配置文件,如类、函数、数据库连接等?

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

【问题讨论】:

  • 听起来htdocs 是您的网络根文件夹。因此,该文件夹中的任何内容都是您面向外部的网站。该文件夹之外的任何东西都不是面向外部的。因此,根据设计,您不能通过 URL 直接访问 Web 根目录之外的文件。
  • @David 感谢您的评论。是的,htdocs 是我的根文件夹。

标签: php .htaccess host


【解决方案1】:

所有其他文件都应该被关闭

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

您不能直接访问文档根目录之外的文件。但是您可以间接访问它们。即,Web 服务器看不到它们,但您的编程代码可以。

理想情况下,您的网站应使用front controller 模式。在这里,您的 index.php 文件将通过拦截每个请求然后将其路由到正确的端点来为您的应用程序的每个页面提供服务。即,您永远不会直接请求/contact.php,而是请求/contact,这将被汇集到/index.php,这将从文档根目录之外加载所需的资源。

【讨论】:

  • 感谢您的评论。你说的正是我想做的,但我来这里问是因为我想听听比我更有经验的人的意见。从您的回答中,我已经看到我走在正确的道路上。再次感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 2013-11-22
  • 2023-03-31
  • 2014-04-22
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多