在 PHP 中重写 URL 而不使用 htaccess
2022-08-30 20:00:01
网站在Web主机上运行,我们无法访问文件。但是,我想为用户友好的URL进行URL重写。.htaccess
例如:原始网址
www.example.com/file?q=name
预期网址
www.example.com/file/name
网站在Web主机上运行,我们无法访问文件。但是,我想为用户友好的URL进行URL重写。.htaccess
例如:原始网址
www.example.com/file?q=name
预期网址
www.example.com/file/name
正如其他人所说,只需使用像.
URL中间的“索引.php”可能看起来有点奇怪,但我认为如果没有.htaccess,就不可能让它看起来更好/index.php/nice/looking/url
否则,您可以要求托管服务商将任何URL重定向到/index.php以便您可以处理URL重写而无需您的URL。/index.php
然后,您可以使用正则表达式匹配来检测要包含的文件。
($matches将在数组中包含url的所有“部分”)preg_match('@[/]{1}([a-zA-Z0-9]+)@', $_SERVER["PATH_INFO"], $matches)
小心包含文件,使用白名单,这样你就可以确定没有人能够加载内部文件。
正如Alix Axel建议的那样,您可以使用
www.example.com/index.php/file/name
然后,您将用于处理URL。$_SERVER['REQUEST_URI']