我想基于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;
}