在没有mod_rewrite的情况下清理PHP中的URL

时间:2011-10-22 04:43:21

标签: php .htaccess clean-urls

我正在为我为PHP客户端构建的网站开发后端(我很少使用),这几乎已经完成。我主要是一个Rails开发人员,所以我很难不去寻找一些混乱版本的CRUD设置,而我正在尝试清理网址。

我希望我的网址如此:

http://www.example.com/videos/name-of-video/

我打算从$_SERVER['PHP_SELF']获取url的最后一位并使用它搜索数据库,但我想要做的是将index.php文件放在http://www.example.com/videos/目录中当我明确指出某人http://www.example.com/videos/name-of-video/时,如果有意义的话,就可以使用它。

如果我将index.php放在/ videos /目录中,还是需要其他东西,它是否可以正常工作?是否有可能不搞乱htaccess?

对不起我的可怜解释。我希望这是有道理的。

谢谢!

2 个答案:

答案 0 :(得分:3)

有一些选项可以在没有RewriteRule的情况下完成。不是没有.htaccess搞乱。

首先,您可以命名不带扩展名的PHP脚本,即video而不是video.php,然后通过ForceTypeDefaultType设置实际文件类型。所以PHP解释器仍然会接收它。该路径将显示在$_SERVER['PATH_INFO'

同样,启用+MultiViews允许PHP脚本不具有扩展名。

最后,可以使用ErrorDocument处理程序代替真正的RewriteRule。然而,它带来了许多缺点。

index.php本身不会在假路径中拾取任何随机文件名。唯一可行的方法是使用http://www.example.com/videos/?name-of-video/

等网址

所以没有。没有某些配置的目录模仿没有好的URL。

答案 1 :(得分:2)

据我所知,如果不触及.htaccess,这种操纵是不可能的。 当您编写网址http://www.example.com/videos/name-of-video/时,您的服务器肯定会在文件夹名称视频文件夹中查找index.php文件。哪个不存在。

如果没有.htaccess可以实现这项任务,那么它们就永远不会被使用。 顺便说一句,为什么你不想使用.htaccess .. ??