1

另一个非常初学者的网站问题。因此,查看一个简单的 php 站点背后的文件结构:

基于 PHP 的网站的文件结构

文件夹/文件结构约定?

建议使用类似于以下的结构:

htdocs/
    /Assets/
    /CSS
    /JS
    /func/func.php
    _newpost.php
    tags.php
    index.php

对于 SEO,我相信更“合乎逻辑”的 URL 更适合内容子类别。

eg. www.example.com/tags.php?t=celebrity

不太可取:

www.example.com/tags/celebrity

就 URL 而言- 我可以将 tags.php 文件放在 htdocs/tag 中,或者我可以使用 mod_rewrite 来获得所需的效果。这就是说,在“包含”func/func.php 和任何其他“操作”(例如 _newpost.php)时,在子文件夹中移动 .php 文件会导致问题。

问题- PHP 文件的存放位置是否有约定?它们都应该在根中吗?对于 _newpost.php - 执行操作和重定向的文件。这些都应该坐在哪里有约定吗?那么 mod_rewrite 应该处理 URL 的“外观”吗?

非常感谢 - 永远感激,马特

4

2 回答 2

2

在 URL 方面- 你不需要将 tags.php 放在任何特定的地方,mod_rewrite 有很多功能,例如你想要的效果。

只要你计划好你的结构,移动到子文件夹也不会给你带来问题,一件重要的事情是在 php.ini 中定义 DOCUMENT_ROOT,这样你就可以通过 $_SERVER['DOCUMENT_ROOT']; 访问你网站的根目录。当在包含内做包含时,这样你就不会搞砸了。

问题- 据我所知,实际上并没有约定,您可以按照您认为对您和/或未来的开发人员更方便、更干净/更友好的方式来组织文件。尽管您展示的结构很常见。

所以是的,通常友好的 URL 处理 mod_rewrite,而不是目录,因为您可以根据需要设置重写规则。

于 2012-11-20T14:01:46.247 回答
1

您的问题有些复杂,因为大多数重要的 Web 应用程序都使用 MVC 框架,它总是带有某种形式的 URL 路由功能。这些路由器允许您将传入的 URL 与物理文件分离,因此类似的东西mysite.com/news不一定与 news.php 匹配。路由器本身是一部分后端代码,一部分是 mod_rewrite(或其 IIS 等效项)

至于 PHP 文件应该放在哪里,这取决于您的代码结构。如果您有大量独立脚本,它们都需要位于最终用户可以访问的某个地方(即,Web 根目录中的某个地方)。如果您有一个读取传入 URL 的索引文件并include()基于该请求提供适当的脚本,则只有索引需要位于 Web 根目录中。

敏感数据,如 db 凭据,应放在 Web 根目录和include()d 之外,或以其他方式读入。

于 2012-11-20T14:03:17.460 回答