我正在开发一个带有用户帐户的网站。每个 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 配置中,将 404 页面替换为 php 脚本,该脚本获取针对的 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重写),你可以使用内爆和解析url之类的东西:
http://us2.php.net/manual/en/function.parse-url.php
http://us2.php.net/manual/en/function.implode.php
这些方法允许您提取URL的各个部分并使用它们
你想在Apache中使用mod_rewite
。
下面是重写规则的示例RewriteRule ^(.*)$ profile.php?user=$1
您可以在此处进行测试:http://martinmelin.se/rewrite-rule-tester/