没有htaccess的PHP中的URL重写

Viv*_*art 21 php web-hosting

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

例如原始URL

www.example.com/file?q=name
Run Code Online (Sandbox Code Playgroud)

预期的URL

www.example.com/file/name
Run Code Online (Sandbox Code Playgroud)

Daa*_*aan 16

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

否则,您可以要求您的主机将任何URL重定向到/index.php,以便您可以/index.php在不使用URL的情况下处理URL重写.

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

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


Pen*_*m10 5

正如Alix Axel建议你可以使用的那样

www.example.com/index.php/file/name
Run Code Online (Sandbox Code Playgroud)

然后你将$_SERVER['REQUEST_URI']用来处理URL.