网站php,seo和mod_rewrite的结构

时间:2012-11-20 13:55:08

标签: php url mod-rewrite seo

另一个非常初学的网站问题。所以看一个简单的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的“外观”吗?

非常感谢 - 感激不尽,马特

2 个答案:

答案 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或以其他方式读入。