首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php 301要加http

基础概念

301 重定向是一种 HTTP 响应状态码,表示请求的资源已经被永久移动到新的 URL。当服务器返回 301 状态码时,浏览器会自动将请求重定向到新的 URL。这对于网站的 URL 结构调整、SEO 优化等场景非常有用。

相关优势

  1. SEO 优化:通过 301 重定向,可以将旧页面的权重转移到新页面,避免搜索引擎对重复内容的惩罚。
  2. 用户体验:用户访问旧 URL 时,会自动跳转到新 URL,不会因为页面不存在而感到困惑。
  3. 维护方便:网站结构发生变化时,通过 301 重定向可以避免链接失效的问题。

类型

301 重定向主要有以下几种类型:

  1. 永久重定向:资源永久移动到新的 URL。
  2. 临时重定向:资源暂时移动到新的 URL,通常使用 302 状态码。

应用场景

  1. 网站改版:网站结构发生变化时,将旧页面重定向到新页面。
  2. 域名更换:网站更换域名时,将旧域名的页面重定向到新域名。
  3. URL 规范化:将不规范的 URL 重定向到规范的 URL。

PHP 实现 301 重定向

在 PHP 中实现 301 重定向非常简单,可以使用 header 函数:

代码语言:txt
复制
<?php
// 设置新的 URL
$newUrl = 'https://example.com/new-page.php';

// 发送 301 重定向响应头
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $newUrl);

// 结束脚本执行
exit();
?>

可能遇到的问题及解决方法

  1. 重定向循环:如果重定向的目标 URL 又指向了原始 URL,会导致无限重定向循环。解决方法是确保重定向的目标 URL 是正确的,并且不会再次指向原始 URL。
  2. 响应头发送时机header 函数必须在任何输出(包括空格和换行)之前调用。如果在调用 header 函数之后有任何输出,重定向将不会生效。解决方法是确保 header 函数在脚本的最开始处调用。
  3. HTTPS 和 HTTP 混合使用:如果网站同时支持 HTTP 和 HTTPS,可能会出现混合内容的问题。解决方法是确保所有页面都使用 HTTPS,并在服务器配置中强制使用 HTTPS。

参考链接

希望以上信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • HTTP页面如何完成301重定向

    介绍了HTTP页面迁移到HTTPS的时候,为了避免出现重复内容的不同网站的情况,建议广大站长将所有的HTTP页面使用301重定向到对应的HTTPS,为了让更多人熟悉301重定向,本文将介绍301重定向的方式...或者网页扩展名改变,如因应用需要把.php改成.Html或.shtml,http升级到https时都需要做301重定向,不然用户访问到的页面可能会发生404页面错误信息。...整站设置301重定向方法 RewriteEngine On RewriteRule ^(.*)$ http://www.360leyi.com/zhishu/ [R=301,L] 4:适用于使用Unix...6:用ASP、PHP、ColdFusion实现301重定向: ASP下的301重定向 Status=”301 Moved Permanently” AddHeader “Location”,”http:...Permanently”; AddHeader (“Location”,”http://www); } PHP: header(“HTTP/1.1 301 Moved Permanently”); header

    5.1K50

    搞懂 HTTP 重定向 - 如何优雅地使用 301

    HTTP 重定向 在 HTTP 中,服务器可以通过返回一个重定向响应来进行重定向。这个重定向响应有一个以 3 开头的状态码 ,并且有一个 Location 头字段 表示要重定向到的位置。...FireFox中的301缓存内容 浏览器为什么会缓存 301 重定向呢?其实,HTTP RFC 中规定 301 是一个可缓存的响应,所以浏览器会根据响应中的 HTTP 缓存头进行缓存。...那么我们就可以通过常规的缓存清理方式来处理,包括但不限于以下几种方式: 控制台禁用缓存 清除历史记录 Network 面板清除缓存 这里大家可以自行尝试以下,如果不行的话,记得多试 1-2 遍就行(至于为什么要多试...大家细想,当我们将错误的 301 请求发布到线上环境了,并且影响了数以万计的用户时,我们要怎么通知并教会用户按照我们的方式去清除缓存呢?...in HTTP: https://developer.mozilla.org/en-US/docs/Web/HTTP/Redirections [3] 浏览器将 HTTP 301 缓存多长时间?

    22.2K62

    Http状态码之:301、302重定向

    概念 301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一。...注意:对于某些使用HTTP/1.0协议的浏览器,当它们发送的POST请求得到了一个301响应的话,接下来的重定向请求将会变成GET方式。...); response.setHeader("Location", "http://127.0.0.1/login.htm"); } 在用户访问后浏览器都会重定向到http://127.0.0.1...是说除非真是临时重定向使用302,其他的情况最好还是使用301吧 参考资料 HTTP状态码 https://zh.wikipedia.org/wiki/HTTP状态码 http状态码301和302详解及区别...——辛酸的探索之路 http://blog.csdn.net/grandpang/article/details/47448395 302重定向 http://baike.baidu.com/view/

    5K51

    代码之间为什么要加空格?

    据我观察,大多数人写代码喜欢在符号两侧加空格,而且还会嘲讽不加空格的人。这些支持者认为,加空格可以让代码美观,增强代码的可读性。但是我不喜欢加空格,因为这么写对代码含义没有影响,浪费空间还很麻烦。...在我写代码的前一两年里,写代码也不习惯加空格,觉得很麻烦,并且加不加空格,真的不影响代码的运行效果。...// 加空格的写法 int a = 5; int b = 3; a = a + b; // 不加空格的写法 int a=5; int b=3; a=a+b; 想知道为什么后来我开始刷牙了呢?...但我就特别讨厌一些题目,让加标点符号断句的那些,很无聊。 所以,别任性,该加空格就加空格,你写的代码可不只是给你一个人看的,负责任点。 换句话说,我也可以写文章不换行,对吧?...不过,需要注意一点的是,我看有些视频课里,有些讲课人习惯什么地方都加空格,我也是有点受不了的,比如说方法名和小括号之间——public void print (),这就有点不合时宜了。

    1.2K20

    通过curl 来对比http状态码301和302

    # 重定向两次后请求到数据 curl --location http://zhihu.com # 可使用 --head,查看到三次响应 curl --head --location http://zhihu.com...next=%2F 说明肯定发生了重定向 直接curl http://zhihu.com 返回301 也说明发生了重定向 我们详细看下执行curl --head --location http://zhihu.com...next=%2F 图片 第三次响应 200 成功 图片 301 & 302 这里我们看到了请求 http://zhihu.com 返回301 永久重定向 301 301 Moved Permanently...请求https://www.zhihu.com 返回302 临时重定向 HTTP 302 Found 重定向状态码表明请求的资源被暂时的移动到了由该 HTTP 响应的响应头 Location 指定的 URL...浏览器会重定向到这个 URL,但是搜索引擎不会对该资源的链接进行更新 适用场景 301适合永久重定向 301比较常用的场景是使用域名跳转。

    1.4K30
    领券