我正在开发一个包含用户帐户的网站。每个的URL都是:
www.site.com/profile.php?user=ChanceM
但是,我想知道是否有另一种方法可以通过URL发送值并使用PHP 抓取它们的URL更像这样:
www.site.com/ChanceM
或者:
www.site.com/profile.php/ChanceM
我只是想知道这是否可行,因为记住第一个URL不是非常用户友好。谢谢!
答案 0 :(得分:1)
对于Apache是 - 您需要查看rewrite规则的手册页。该链接将告诉您如何执行此操作。另请查看Apache文档。
至于我不知道的其他服务器。
答案 1 :(得分:0)
有一些方法可以做到这一点,但可能没有内置到像$ _GET数组的PHP。你可以做的一件事就是在apache配置中,用一个php脚本替换404页面,该脚本获取url目标并重定向到像www.site.com/profile.php?user=ChanceM这样的版本(我想在mod_rewrite你也可以这样做。)
答案 2 :(得分:0)
是的,您可以按照您所说明的任何方式进行。
在第一个示例的情况下,您必须使用类似mod_rewrite的内容,它可以透明地将友好URL(site.com/Username)重写为PHP脚本(site.com/profile.php?user =用户名)
使用第二种方法,您必须使用$_SERVER['REQUEST_URI']
从URL访问数据,并手动将其解析为可用变量。
答案 3 :(得分:0)
如果你想发送“更清洁的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的各个部分并使用它们
答案 4 :(得分:0)
您想在Apache中使用mod_rewite
。
以下是重写规则RewriteRule ^(.*)$ profile.php?user=$1
您可以在此处进行测试:http://martinmelin.se/rewrite-rule-tester/