【问题标题】:how to write pretty URLs without htaccess file in php如何在 php 中编写没有 htaccess 文件的漂亮 URL
【发布时间】:2015-11-12 11:41:43
【问题描述】:
【问题讨论】:
标签:
php
.htaccess
url
url-rewriting
pretty-urls
【解决方案1】:
如果您有 Apache 服务器并启用了 AcceptPathInfo,那么您可以使用 /index.php/nice/looking/url 之类的链接。
URL中间的“index.php”可能看起来有点奇怪,但我认为没有.htaccess也不可能让它看起来更好
否则,您可以要求您的托管商将任何 URL 重定向到 /index.php,这样您就可以处理 URL 重写,而无需在 URL 中包含 /index.php。
然后您可以使用正则表达式匹配来检测要包含的文件。
preg_match('@[/]{1}([a-zA-Z0-9]+)@', $_SERVER["PATH_INFO"], $matches) ($matches 将包含 URL 中的所有“部分”数组)
小心包含文件,使用白名单,确保没有人能够加载内部文件。
【解决方案2】:
实际上,您可以为每个成员动态创建一个新文件夹,其中包含一个简单的索引文件,其中包含您的前端控制器,但即使有可能,您也可能不想这样做,而是想更改您的主机。
【解决方案3】:
如果我不想使用.htaccess,我可能会在index.php 页面内有这个单行代码。
伪代码:获取ID并重定向用户
简短说明:连接您在 url 中获得的 id 并使用该 id 重定向到您想要的位置
真实代码
header('Location: http://yousite.com/member/'.$_GET['id'].'/');