301使用if/else语句重定向


301 redirect with if/else statements

我想基于if-else语句进行php301重定向。我有两个类别,希望类别2中的页面重定向到另一个url。

是否可以将类别2的所有页面从domain1.com重定向到domain2.com?

那么:::domain1.com/pagetitle.html到domain2.com/pagetitle html?

我有以下几种,但似乎不起作用。in_category是可以的,但重定向只是基本url domain2.com,而不是domain2.com/pagetitle.html:

if (in_category('2') ){
Header( "HTTP/1.1 301 Moved Permanently" ); 
header('Location: http://www.markett.nl' . $url_suffix . '/' . $url, true, 301); 
} else { }

----------------编辑------------------------------

这仍然让我抓狂。。。

我有以下内容,但firefox说在加载一些cookie时出现了问题。

这是正确的标记吗??

<?php $category = get_the_category();
$url = $_SERVER['REQUEST_URI'];
// Redirect to correct site on basis of section id
if(in_category('2') ){ 
header('Location: http://www.domain2.com/' . $url, true, 301); 
exit; } 
?>

看到我被重定向的图片。

查看$_SERVER变量,找出您需要的变量:保留变量$_SERVER。

让事情变得更容易:

var_dump($_SERVER);
die();

将其添加到代码之前(一次),以了解变量由哪些组成。我没有给出完整的答案,因为了解这些变量也很好。

问题

是否可以将类别2的所有页面从domain1.com重定向到domain2.com?

是的。

可能的解决方案

header()之后调用exit

您需要在发出标头后exit才能立即发送。

将状态代码传递到header()

此外,header()DOC可以传递HTTP状态代码作为第三个参数,而不是对header():进行两次调用

强制HTTP响应代码为指定值。请注意参数只有在字符串不为空时才有作用。

代码

所以代码看起来像:

if(in_category('2') ){
    header('Location: http://www.domain2.nl' . $url_suffix . '/' . $url, true, 301);
    exit;
}