Php 使用.htaccess或其他方法重命名url

Php 使用.htaccess或其他方法重命名url,php,.htaccess,Php,.htaccess,我是PHP的初学者,有一件事我一直找不到答案,或者我不知道该搜索什么 我制作了一个PHP脚本,它使用GET参数显示数据库中的用户信息 url看起来像这样我想做的是使url看起来像这样。这是如何实现的,是使用.htaccess还是使用php,以及如何实现 提前感谢。确保这是可能的,重写通常在协议级别上完成,因此在http服务器内部,它与php引擎无关: RewriteEngine on RewriteRule ^/?user-info/(.+)$ /user-info.php?userid=$1

我是PHP的初学者,有一件事我一直找不到答案,或者我不知道该搜索什么

我制作了一个PHP脚本,它使用GET参数显示数据库中的用户信息

url看起来像这样我想做的是使url看起来像这样。这是如何实现的,是使用.htaccess还是使用php,以及如何实现


提前感谢。

确保这是可能的,重写通常在协议级别上完成,因此在http服务器内部,它与
php
引擎无关:

RewriteEngine on
RewriteRule ^/?user-info/(.+)$ /user-info.php?userid=$1 [END]
此规则同样适用于http服务器的主机配置或动态配置文件(“.htaccess”样式文件)。显然,要使其工作,必须启用http服务器的重写模块。如果您决定使用动态配置脚本,则还必须支持和启用该脚本

如果您使用上述规则收到“内部服务器错误”(http状态500),则很可能您操作的是非常旧版本的apache http服务器。在这种情况下,将
END
标志替换为
L
标志在这种情况下也应该起作用,尽管这取决于您拥有的其他重写规则。在任何情况下,您都会在http服务器错误日志文件中找到未知
END
标志的明确提示


还有一个一般性的注释:您应该总是更喜欢将这些规则放在http服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为的原因,难以调试,而且它们确实降低了http服务器的速度。只有在您无法访问真正的http服务器主机配置(读:真正廉价的服务提供商)或坚持编写自己的规则的应用程序(这显然是一个安全噩梦)的情况下,才提供它们作为最后一个选项

您可以从zend expressive获得一个.htaccess文件,它拥有您所需要的一切-。它将所有请求传递到index.php文件,您可以在其中执行进一步的路由,然后进行请求处理


作为路由器,我推荐FastRoute()。另外请看一看-它是php开发人员必备的工具。

我认为您需要类似的工具,请尝试一下。只需替换url(index.php为user info.php)

可能的重复可能的重复
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controller=$1&action=$2&id=$3 [NC,L]
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]