php - 在没有 htaccess 的情况下用 PHP 重写 URL

标签 php web-hosting

网站在我们无权访问 .htaccess 文件的网络主机上运行。但是,我想为用户友好的 URL 重写 URL。

例如原始网址

www.example.com/file?q=name

预期的网址

www.example.com/file/name

最佳答案

正如其他人所说,只需使用 /index.php/nice/looking/url 之类的链接
URL中间的“index.php”可能看起来有点奇怪,但我认为没有.htaccess不可能让它看起来更好

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

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

小心包含文件,使用白名单,确保没有人能够加载内部文件。

关于php - 在没有 htaccess 的情况下用 PHP 重写 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2126762/

相关文章:

html - style.css 不适用于我网站的虚拟主机预览,但它适用于本地 "offline"HTML 文件

asp.net-mvc - 如何在 Asp.net 中修复端口号

dns - VPS 托管 DNS 问题

javascript - 如何获得 youtube 视频的直接链接和不同的分辨率?

javascript - 在 PHP 中生成 JSON 流并将其显示为 Google Chart

php - 用于处理字母数字输入的 RegEx - PHP

php - 从 PHP 中的数组中删除空的 stdclass 对象

php - 数组按值划分/拆分

java - 计算 jvm 堆大小以托管 Web 应用程序

python - Flask api 从 python shell 运行,但在 Ubuntu 上托管后不运行