PHP在IIS上用301重定向www到非www


PHP redirect for www to non-www with 301 on IIS

我想把这件事彻底弄清楚:

<?php if ($_SERVER['HTTP_HOST'] != 'domain.com'){
header("Location: http://domain.com"
.$_SERVER['REQUEST_URI']);
} ?>

这将把所有流量发送到NON-WWW版本。

我的问题是-我可以添加'header('HTTP/1.1 301永久移动');'安全而不搞乱一切?

我使用IIS服务器,所以。htaccess是不好的,所有的页面都是用PHP编码的-欢迎所有的解决方案

当然可以。利用header()提供的所有参数:

<?php
if ($_SERVER['HTTP_HOST'] != 'domain.com'){
    header("HTTP/1.1 301 Moved Permanently", true, 301);
    header("Location: http://domain.com".$_SERVER['REQUEST_URI']);
}

最后一个参数强制响应代码为301,如您所愿

当然可以,它不会弄乱任何东西!但它必须在标题位置行后面的if子句中:

<?php
if ($_SERVER['HTTP_HOST'] != 'domain.com'){
    header('HTTP/1.1 301 Moved Permanently');
    header("Location: http://domain.com".$_SERVER['REQUEST_URI']);
}
?>

但如果你使用URL重写(又名"IIS mod_rewrite"):http://www.iis.net/downloads/microsoft/url-rewrite或其他一些重定向不在你的php代码