6

我是网络开发(和大学)的学生,所以如果这听起来很幼稚和冒犯,我很抱歉,我当然不是那个意思。我的经验是使用 PHP 和一个即将到来的小型项目(一个美化的轮班日历),我希望学习一个更高级别的框架来减轻代码负担。到目前为止,我研究了 CakePHP Symfony Django 和 Rails。

使用 PHP,URL 非常简单地映射到文件,并且“正常工作”。服务器速度很快,而且很直观。但是对于所有这些框架,通过使 URL 映射到不同的函数并将参数路由到不同文件中的不同变量来“美化” URL。

我正在阅读的“The Rails Way”一书承认这很慢,并且是大型项目中大多数性能问题的原因。我的问题是“为什么首先要有它?”?url-maps-to-a-file 范例(或 mod_rewrite 到单个文件)中是否存在需要正则表达式和复杂路由方案的特定点?我是否因为不使用它们而错过了什么?

提前致谢!

4

6 回答 6

6
  • URL 应该易于记忆和表达。并且用户应该知道当她看到该 URL 时会发生什么。将 URL 直接映射到文件并不总是允许这样做的。
  • 您可能希望对显示的相同或至少相似的信息使用不同的 URL。如果您的服务器强制您使用 1 url <-> 1 文件映射,则需要创建其他文件,其所有功能都是重定向到其他文件。mod_rewrite或者你使用比Rails 的 url 映射更容易的东西。
  • 在我的一个应用程序中,我使用看起来像http://www.example.com/username的 URL/一些额外的东西/。这也可以用 . mod_rewrite,但至少对我来说,在 django 项目中配置 url 比在我运行应用程序的每个 apache 实例中更容易。

只是我的2美分...

于 2008-12-31T07:49:30.600 回答
6

其中大部分已经被覆盖,但还没有人提到 SEO。谷歌非常重视 URL 本身,如果该 URL 是 widgets.com/browse.php?17,那么这对 SEO 不是很友好。如果您的 URL 是 widgets.com/products/buttons/ 这将对您的按钮页面排名产生积极影响

于 2009-01-02T12:52:44.283 回答
3

将应用程序代码存储在 Web 服务器的文档树中是一个安全问题。

  • 错误配置可能会意外向访问者泄露源代码
  • 通过安全漏洞注入的文件可以立即被 HTTP 请求执行
  • 备份文件(例如由文本编辑器创建)可能会显示代码或在配置错误的情况下可执行
  • 管理员未能删除的旧文件可能会显示意外功能
  • 必须明确拒绝对库文件的请求
  • URL 揭示了实现细节(使用了哪种语言/框架)

请注意,只要其他事情没有出错,以上所有内容都不是问题(其中一些错误即使单独出现也会很严重)。但是总有一些事情出错,并且有额外的防线是好的。

于 2009-01-02T12:33:37.970 回答
2

Django URL 也是非常可定制的。使用像 Code Igniter(我不确定 Rails)这样的 PHP 框架,你会被迫进入 /class/method/extra/ URL 结构。虽然这可能对小型项目和应用程序有好处,但一旦您尝试使其更大/更具动态性,您就会遇到问题并且必须重写一些框架代码来处理它。

于 2009-01-01T03:08:54.643 回答
0

此外,路由器类似于mod_rewrite,但更灵活。它们不是正则表达式绑定的,因此对于不同类型的路由有更多选择。

于 2008-12-31T07:53:22.497 回答
0

取决于你的应用程序有多大。我们有一个相当大的应用程序(50 多个模型),它不会给我们带来任何问题。当它发生时,我们会担心它。

于 2008-12-31T10:42:34.103 回答