所以我对网站开发、PHP、Mysql 等还相当陌生,所以如果我因为完全缺乏智慧而得到一些反对票,那是理所当然的,我只是想要答案哈哈。
我可能随波逐流,或者可能继承了完全糟糕的编码实践;我们不是使用简单的网站结构,例如 stackoverflow.com/questions.php?q=ask(基于 GET 数据显示内容),或者使其变得更加简单,例如 stackoverflow.com/ask.php 等,看起来很简单 stackoverflow.com/questions/ask
那么到底发生了什么奇怪的魔法呢?
您可能正在寻找 mod_rewrite。
mod_rewrite 可以工作,但它确实不会改善网站上的实际文件结构(在幕后)。
为此,您将使用 PHP 框架。我建议从 CodeIgniter 开始,它比 Zend 更简单。 (我没有使用 CakePHP 的经验,所以我不会对此发表评论。)
您需要配置路由来捕获 url,以便将其映射到某个控制器,然后使用函数捕获 url 的其余部分作为参数。
function _remap($params = array()) {
return call_user_func_array(array($this, 'index'), $params);
}
然后,在同一个控制器中更改索引函数,如下所示:
function index($id = null) {
$data['question'] = /* get your data from the database */;
$this->load->view('index', $data);
return true;
}
这假设您从 zip 文件中的欢迎控制器示例开始。
但是,更直接地回答你的问题,实际上并没有发生任何魔法。浏览器请求某个资源,服务器根据它自己的逻辑和配置方式返回该资源。 服务器上文件的布局是一个内部问题,浏览器只能看到服务器状态的表示。 阅读 REST 原则以更好地理解这一点。
现代网站开发文件结构将项目组织到清晰、可管理的文件夹中。关键目录包括 index.html 和 README.md 等基本文件的根目录、用于图像和字体的 /assets、用于 CSS 的 /styles 以及用于 JavaScript 的 /js。 可重用的组件放置在 /components 中,而 HTML 模板则放置在/意见。后端代码(如果有)驻留在 /server 文件夹中。对于测试,文件保存在 /tests 中,生产就绪文件输出在 /build 文件夹中。这种结构确保了整个项目的可扩展性、可维护性和高效协作。 阅读更多...