1

我想一劳永逸地解决这个问题:

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

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

我的问题是 - 我可以添加 'header('HTTP/1.1 301 Moved Permanently');' 安全而不搞砸一切?

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

4

2 回答 2

2

当然可以。利用提供的所有参数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,如您所愿。

于 2013-05-11T13:40:46.873 回答
0

当然可以,它不会搞砸任何事情!但它必须在标题位置行后面的 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 代码中的重定向。

于 2013-05-11T13:37:40.623 回答