另一个非常初学的网站问题。所以看一个简单的php网站背后的文件结构:
File structure for PHP-based website
Folder/File Structure Conventions?
建议使用类似于:
的结构htdocs/
/Assets/
/CSS
/JS
/func/func.php
_newpost.php
tags.php
index.php
对于搜索引擎优化,我认为更多“逻辑”网址是内容子类别的首选。
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的“外观”吗?
非常感谢 - 感激不尽,马特
答案 0 :(得分:2)
就网址而言 - 您无需将tags.php置于特定的任何位置,mod_rewrite具有相当多的功能,例如您想要的效果。
移动到子文件夹不会导致问题,只要你很好地规划你的结构,一个重要的是在php.ini中定义DOCUMENT_ROOT,这样你就可以通过$ _SERVER ['DOCUMENT_ROOT']访问你网站的根目录;当做包括在包含内部时,这样你就不会搞砸了。
问题 - 据我所知,实际上没有一个约定,您可以按照您认为对您和/或未来开发人员更方便,更干净/友好的方式组织文件。虽然你展示的结构很常见。
所以是的,通常友好的URL是用mod_rewrite处理的,而不是目录,因为你可以根据需要设置重写规则。
答案 1 :(得分:1)
你的问题有些加载,因为大多数非平凡的网络应用都使用MVC框架,它总是带有某种形式的URL路由功能。这些路由器允许您将传入的URL与物理文件分离,因此mysite.com/news
之类的内容不一定与news.php匹配。路由器本身是一部分后端代码,一部分是mod_rewrite(或其等效的IIS)
至于PHP文件应该去哪里,这取决于你的代码结构。如果您拥有大量独立脚本,那么它们都需要位于最终用户可以访问的位置(即Web根目录中的某个位置)。如果您有一个读取传入URL的索引文件,并且include()
是基于该请求的正确脚本,则只需要索引位于Web根目录中。
敏感数据(如数据库凭据)应放在Web根目录之外,include()
d或以其他方式读入。