2012-07-23 71 views
-2

我需要将用户从页面资源/?group = 168重定向到resources /?group = 205。重定向从MySQL填充的PHP查询

是在htaccess,php重定向,或可能在index.php切换案件的最佳方式?

我没有成功尝试:

htaccess的

Redirect resources/?group=168 http://www.site.com/resources/?group=205 

案例切换

switch ($id) { case '168': $id = 205; break;} 

感谢您的任何建议。

+1

你为什么要重定向?这是唯一一个,会不会有更多的重定向? – mdo 2012-07-23 17:46:00

+1

这与MySQL查询有什么关系? – Ray 2012-07-23 17:46:28

+0

我将我们用来存储简讯的页面重定向到新位置。这是目前唯一的重定向。也许我说错了,但页面都存储在数据库与PHP文件,它将每个页面按数字拉到index.php。 – Jameson 2012-07-23 19:07:12

回答

0

,我会做它在htacces或Apache配置中,你可以发送一个合适的3XX系列响应头让浏览器(和搜索引擎蜘蛛)知道这是该资源的新位置。

RewriteEngine On 
RewriteRule ^resources/\?group=168$ /resources/?group=205 [R=301,L] 

如果你确切的URI不会是/资源/组= 168,那么你可能需要做像利特不同的模式:

RewriteRule ^resources/(\?|.*&)group=168(&.*$|$) /resources/$1group=205$2 [R=301,L] 
+0

谢谢,我一直在试图让这些工作在我们的设置中,并没有任何运气。理想情况下,我想使用.htaccess,但我没有得到任何结果与重写。我已经将它添加到根文件夹中的.htaccess中,并且我猜测$符号适用于可能在168之后发生的任何事情。它根本没有反应。 – Jameson 2012-07-23 20:38:56

+0

$符号表示字符串的结尾。这只会匹配/ resources /?group = 168的文字URI。如果将要传递其他参数,那么你会想做一些不同的事情。看到我上面的编辑。 – 2012-07-23 20:40:48

+0

我试着添加特定的重定向和你的代码到根目录,html和资源文件夹,它似乎没有在它们中任何一个上有所作为。应该放置什么文件夹来帮助完成我的一些猜测工作?谢谢! – Jameson 2012-07-23 22:53:29

0
if ($_GET['id'] == 168) { 
    header('Location: http://www.site.com/resources/?group=205'); 
} 

如果头重定向不起作用,使用JavaScript

<script type="text/javascript"> 
<!-- 
window.location = "http://www.site.com/resources/?group=205" 
//--> 
</script> 
0

我只想用一个if声明自己:

if ($id == '168') $id = 205; 

但它确实取决于你的需求,我假设。如果你想让URL栏反映重定向,我会建议.htaccess。

+0

感谢您的帮助,这将工作,但我意识到我需要使用以前的链接到页面的任何人的htaccess。 – Jameson 2012-07-23 22:55:06

0

林不知道如果你希望用户永久使用这组ID与另一个的switch是假设在你的例子做的(本身),但如何

switch($_GET['group']) { 
    case 168: $redirGrp = 205;break; 
} 
if(!empty($redirGrp)) header("Location:?group=$redirGrp");