【问题标题】:How can I redirect $_GET variables onto another page?如何将 $_GET 变量重定向到另一个页面?
【发布时间】:2013-07-24 18:34:05
【问题描述】:
我的 Wordpress 版本存在问题,该版本的网站 URL 比实际的 Wordpress 目录高一层。问题是来自 Wordpress 网站的任何链接都会自动将自己重定向到相对于网站 url。
假设我在 Wordpress 中,我想转到 ./blog/?p=1 的链接(相对于根目录),我得到的唯一选择是转到 ./?p=1。我环顾四周,对于这样的问题没有太大帮助。
所以,我想问一个替代方案...如果他们设置了任何 $_GET 参数,有没有办法重定向任何人?
谢谢。
【问题讨论】:
标签:
php
wordpress
redirect
get
【解决方案1】:
如果您想保持 _GET 的所有属性不变,您可以通过快速检查运行 url,如下所示:
if ( !empty($_GET) ) {
$c = 0;
foreach( $_GET as $key => $value ) {
$points[$c] = array( $key, $value );
$c++;
}
$redirect = "./blog/?";
$and = "";
foreach( $points as $got ) {
$redirect .= $and.$got[0]."=".$got[1];
$and = "&";
}
header( "Location: ".$redirect );
}
这首先检查是否有任何$_GET 语句被选中(您可以通过AND 检查为获取的属性添加转义语句),然后逻辑地遍历语句。首先,我们将每个点存储在一个多维数组中,并在我们需要做的尽可能多的迭代中递增。
从那里,我们可以设置重定向链接。这是通过设置基本重定向然后添加任何$_GET 项目来完成的,这些项目是按照它们被发现的顺序找到的。
最后一步是做重定向,然后就完成了。