请求index.php以便使用其他脚本是不好的做法

时间:2013-04-24 07:39:19

标签: php performance code-structure

index.php用作其他脚本的加载器是不是很糟糕,还是有所不同?

即。请求index.php使用不同的查询字符串并在其中,选择并包含匹配的脚本。

e.g。

www.example.com/?sign-in www.example.com/sign-in.php的{​​{1}}内容 www.example.com/?new-post

www.example.com/new-post.php内容

通过这种方式,您可以使用index.php来执行常见的包含和处理,例如设置时区,mb编码,数据库连接,身份验证等。

4 个答案:

答案 0 :(得分:2)

最佳做法是让apache将所有网址重写为index.php或其他可用作引导程序的文件。此引导程序运行所有基本代码,然后此引导程序可以根据URL确定要采取的其他操作。

每个框架都是这样的。

你可能想要在bootstrap中做些几件事:

  • 设置,自动加载类

  • 设置mysql连接

  • 检查用户是否针对特定操作进行了身份验证

有很多关于使用apache重写网址的教程:http://www.workingwith.me.uk/articles/scripting/mod_rewrite

如果您真的想了解最佳实践,我建议您查看现有框架,了解它们如何实现某些内容。例如:Zend或Symfony

答案 1 :(得分:2)

是和否

问题在于,通过这样做,您将失去任何SEO值,例如:domain.com/index.php?post=story对domain.com/post/story排名很差。你的index.php也会很快变得混乱。

据说MVC通常使用index.php,所以我的网址是domain.com/users/edit/123,这是一个非常合乎逻辑的网址,但实际上被称为domain.com/index.php,它然后查看第一个参数,“用户”并实例化用户控制器,然后在其中查找函数编辑并传递“123”(用户ID)作为函数中的第一个参数。如果您不熟悉MVC,我会建议将codeigniter作为起始者more on codeigniter

最后,您将通过从头开始构建它来重新发明轮子,而不是使用MVC使开发更容易。

答案 2 :(得分:1)

这是最好的方法。您可以控制您的网站。 创建index.php并根据需要包含其他文件。 (定义一个常量并在包含的文件中使用它等等)
 但请记住尽量减少index.php 您也可以使用Apache mod_rewrite生成SEO友好URL。

答案 3 :(得分:1)

您可以将路由拆分为映射到其他文件,而不是将所有请求(通过htaccess)路由到index.php:

/blog/hello-there映射到blog.php?title=hello-there

/sign/in映射到login.php?login

等,因此您可以根据请求URL创建自己的简单路由;易于阅读和易于维护。

此解决方案适用于小型项目,对于更大的项目,我建议使用完整的框架,如Yii或Symfony。