PHP获取QUERY_STRING后“/”

问题描述:

我有我的域名,我想从这样的URL得到查询:http://domain.com/querystring  和输出将被:querystringPHP获取QUERY_STRING后“/”

这是相同的技术bit.ly使用和Facebook的个人资料页面。我必须在我的.htaccess文件中做些什么吗?或者是否有一个正常的PHP命令来做到这一点..我认为这将是某种.htaccess URL重写,但我只知道是否有任何其他选项。

+1

请参见['mod_rewrite'](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)。 – 2012-07-27 14:43:20

+0

我不记得我的头,但是可以使用'$ _SERVER'中的一个键。 'print_r($ _ SERVER)'应该告诉你。 – zneak 2012-07-27 14:43:44

对于Facebook的例子: www.facebook.com/profile.php?id=####

然后使用mod_rewrite的样子www.facebook.com/username

但要获得username代码:

$_GET['id']; 

Facebook已经到idusernames引用在其db表中

+0

'RewriteEngine On RewriteRule ^([a-zA-Z0-9 _-] +)$ user.php?username = $ 1 RewriteRule ^([a-zA-Z0-9 _-] +)/ $ user.php?用户名= $ 1' 这是我的.htaccess代码..我需要把一个点'.'。怎么做?这是否像普通的正则表达式一样工作? – Dimser 2012-07-27 17:03:14

我假设您使用的是Web服务器,如Apache和index.php是您的控制器。

启用mod_rewrite,然后在根目录(或您的虚拟主机定义)中配置.htaccess文件。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

然后使用$_SERVER['QUERY_STRING']

检查$_SERVER超全局。

+0

没有mod_rewrite,PHP通常不会被触发只有http://domain.com/querystring – Ron 2012-07-27 14:46:38

+0

@Ron:是的,你说得对。我编辑过。 – 2012-07-27 14:52:37

如果您只是想使用URI的一部分,为您的查询,您可以从$ _ SERVER类似这样的超级全局让整个URI,然后打破它拆开来得到什么您可能需要的部分

$uri = $_SERVER['REQUEST_URI']; 
$pieces = explode("/", $uri); 
$myQuery = $pieces[1];