如何在php中编写没有htaccess文件的漂亮URL


how to write pretty URLs without htaccess file in php

没有htaccess的漂亮URL

我想写一个漂亮的URL,比如:
http://yousite.com/member/1/而不是http://yousite.com/index.php?page=member&id=1
但我使用了htaccess文件,现在我想在没有htaccess文件的情况下执行此操作,因为有时您没有权限在服务器上编辑htaccess文件。

如果你有一个Apache服务器,并且AcceptPathInfo已经启用,那么你可以使用像/index.php/nice/lolooking/url这样的链接。URL中间的"index.php"可能看起来有点奇怪,但我认为如果没有.htaccess ,就不可能让它看起来更好

否则,您可以要求宿主将任何URL重定向到/index.php,这样您就可以在URL中不包含/index.php的情况下处理URL重写。

然后,您可以使用正则表达式匹配来检测要包含的文件。preg_match('@[/]{1}([a-zA-Z0-9]+)@',$_SERVER["PATH_INFO"],$matches)($matchess将在数组中包含url的所有"部分")

要小心包括文件,使用白名单,这样你就可以确保没有人能够加载内部文件。

实际上,您可以为每个成员动态创建一个新文件夹,其中包含一个包含前端控制器的简单索引文件,但即使可能,您也可能不想这样做,而是想更改主机。

如果我不想使用.htaccess,我可能会在index.php页面中有这个单行代码

伪代码:获取ID并重定向用户

简短解释:合并您在url中获得的id,并使用该id 重定向到您想要的位置

真实代码

header('Location: http://yousite.com/member/'.$_GET['id'].'/');