0

根据:每日博客提示

下面的代码做了两件事:

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']);
}
?>
4

1 回答 1

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 的 .htaccess

于 2012-10-30T20:56:22.273 回答