2009-05-27 65 views
2

我知道所有获取干净网址的规范方法(www.mysite.com/getarticle?a=123 vs www.mysite.com/getarticle/123)。没有Apache配置的PHP干净网址

这些解决方案主要包括mod_rewrite,force_type和apache的各种配置。

由于我无法访问我的共享主机上的此类配置,有没有解决方案/黑客来解决此限制并完成工作?谢谢。

回答

3

是的。

如果您通过a,www.example.com/index.php/my/path/here调用脚本,您可以很容易地从$_SERVER获取请求路径。我个人使用$_SERVER['PHP_SELF'],但根据您使用的PHP版本,有几种可供选择。

2

只要确定 - 你确定你不能使用mod_rewrite?

如果它已在共享主机服务器上安装/启用,则只需将一个.htaccess文件放入public_html目录中,并在其中包含重写规则。无需更改实际的apache配置。

0

如果系统无法正确处理它们,则不能使用除系统相关的其他URL。 Web服务器的本地行为是将请求的URL路径一对一映射到文件系统上。

但是大多数Web服务器都提供了一些功能来允许这样的事情,借助特定规则将请求的URL路径映射到文件系统上。

阿帕奇例如具有AcceptPathInfo追加其它路径段,同时保留该信息已经引用了一个已存在的文件的URL的路径(参见PATH_INFO envirnoment变量)和mod_rewrite后甚至更多的功能。

+0

显然,默认情况下,对于普通的apache请求,AcceptPathInfo是关闭的,但默认情况下为mod_php和大多数CGI处理程序。 – 2009-05-27 23:03:11