我正在开发一个带有用户帐户的网站。每个的 URL 大致如下:
www.site.com/profile.php?user=ChanceM
但是,我想知道是否有另一种方法可以通过 URL 发送值并使用 PHP 获取它们,其 URL 更像这样:
www.site.com/ChanceM
或者:
www.site.com/profile.php/ChanceM
我只是想知道这是否可能,因为记住第一个 URL 对用户不是很友好。谢谢!
对于 Apache 是 - 您需要查看手册页以了解重写规则。该链接将告诉您如何执行此操作。还可以查看 Apache 文档。
至于其他服务器我不知道。
当然有办法做到这一点,但可能不像 $_GET 数组那样直接内置到 php 中。您可以做的一件事是在 apache 配置中,用 php 脚本替换 404 页面,该脚本将 url 定位并重定向到 www.site.com/profile.php?user=ChanceM 之类的版本(我认为在 mod_rewrite 你也可以这样做)。
是的,您可以按照您说明的任何方式进行操作。
在第一个示例的情况下,您必须使用mod_rewrite之类的东西,它可以透明地将友好 URL (site.com/Username) 重写为 PHP 脚本 (site.com/profile.php?user=Username)
使用第二种方法,您必须使用$_SERVER['REQUEST_URI']
从 URL 访问数据,并手动将其解析为可用变量。
如果您想发送“更干净的 URL”(不进行某种类型的 URL 重写),您可以使用 implode 和 parse url 之类的东西:
http://us2.php.net/manual/en/function.parse-url.php
http://us2.php.net/manual/en/function.implode.php
这些方法允许您提取 URL 的各个部分并使用它们
你想mod_rewite
在 Apache 中使用。
这是重写规则的示例RewriteRule ^(.*)$ profile.php?user=$1