php 301重定向到所有t

时间:2012-10-30 20:54:54

标签: php http redirect

根据:Daily Blog Tips

下面的代码有两件事:

1)它将添加(或删除)www。您网域内所有网页的前缀。

2)以下代码会将http://domain.com版本的访问者重定向到http://www.domain.com

我的问题:在index.php页面中插入以下代码是否足以创建301重定向,该重定向将适用于我正在处理的网站的所有页面?

<?php
if (substr($_SERVER['HTTP_HOST'],0,3) != 'www') {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.'.$_SERVER['HTTP_HOST']
.$_SERVER['REQUEST_URI']);
}
?>

1 个答案:

答案 0 :(得分:3)

  
    

我的问题:在index.php页面中插入以下代码是否足以创建301重定向,该重定向将适用于我正在处理的网站的所有页面?

  

没有。这仅适用于http://www.example.com/index.php而不适用于http://www.example.com/whatever/whatever/file.php。你最好使用Apache mod_rewrite来完成这项任务。您可以将其粘贴到文档根/.htaccess文件中。

# Rewrite "example.com -> www.example.com".
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
  RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

代码取自HTML5 Boilerplate's .htaccess