Apache 用于清除URL的mod_rewrite或path_info

Apache 用于清除URL的mod_rewrite或path_info,apache,mod-rewrite,pathinfo,Apache,Mod Rewrite,Pathinfo,我一直使用mod_rewrite创建外观整洁的URL,直到最近我才知道还有其他选择。几周前,这里有人指出,使用apachePATH\u INFO可以实现完全相同的效果。现在考虑一下,我假设这就是大多数PHP框架所做的,可以选择依赖mod_rewrite从URL中删除index.PHPbootstrap 所有这些都引出了几个问题: 以下哪种方法是创建干净灵活的URL结构的更好方法: /page/var/foo/bar/2 这两种方法的相对优势/劣势是什么 哪种方法在资源使用等方面更好 谢谢。使用p

我一直使用mod_rewrite创建外观整洁的URL,直到最近我才知道还有其他选择。几周前,这里有人指出,使用apache
PATH\u INFO
可以实现完全相同的效果。现在考虑一下,我假设这就是大多数PHP框架所做的,可以选择依赖mod_rewrite从URL中删除
index.PHP
bootstrap

所有这些都引出了几个问题:

  • 以下哪种方法是创建干净灵活的URL结构的更好方法:
    /page/var/foo/bar/2
  • 这两种方法的相对优势/劣势是什么
  • 哪种方法在资源使用等方面更好

  • 谢谢。

    使用pathinfo,您的url中始终会有脚本名,这看起来很蹩脚(某些代理认为无效)。我建议使用mod_rewrite作为主要方法,使用pathinfo或404处理程序作为备用方法。

    使用pathinfo,您的url中总会有脚本名称,这看起来很蹩脚(某些代理认为无效)。我建议将mod_rewrite作为主要方法,使用pathinfo或404处理程序作为备用方法。

    我非常确定我看到过URL中没有脚本名的path_info示例,有人能确认吗?我想这是不可能的,但我以前就错了。然而,使用
    mod_rewrite
    简单地将所有请求重定向到脚本,并在该脚本中使用
    path_info
    是非常可能的,我的理解是非常常见的。我非常确定我看到过URL中没有脚本名称的path_info示例,有人能证实吗?我想说这不可能,但我以前是错的。但是,使用
    mod_rewrite
    将所有请求简单地重定向到脚本,并在该脚本中使用
    path_info
    是非常可能的,而且据我所知,这是非常常见的。