当前位置:首页 > JavaScript

js实现301重定向

2026-03-01 22:07:50JavaScript

使用 window.location 实现重定向

通过修改 window.location.hrefwindow.location.replace 实现页面跳转。replace 方法不会在历史记录中留下原始页面,更适合模拟 301 重定向。

// 方法1:直接修改 href(会保留历史记录)
window.location.href = "https://example.com/new-page";

// 方法2:使用 replace(无历史记录)
window.location.replace("https://example.com/new-page");

通过 HTTP 响应头实现

在服务器端设置 HTTP 状态码为 301 并返回 Location 头,这是标准的 301 重定向方式。前端可通过 fetchXMLHttpRequest 检测重定向,但无法直接控制。

js实现301重定向

// 示例:检测服务器是否返回 301
fetch("/old-page", { redirect: "manual" })
  .then(response => {
    if (response.status === 301) {
      window.location.href = response.headers.get("Location");
    }
  });

使用 <meta> 标签重定向

通过 HTML 的 <meta> 标签实现客户端重定向,但这种方式不是真正的 301 重定向(搜索引擎可能视为 302)。

<meta http-equiv="refresh" content="0; url=https://example.com/new-page">

注意事项

  • SEO 影响:纯前端方法(如 window.location)无法传递 301 状态码,搜索引擎可能视为 JavaScript 跳转而非永久重定向。
  • 性能优化:301 重定向应优先通过服务器配置(如 Apache 的 .htaccess 或 Nginx 的 rewrite)实现。
  • 缓存问题:浏览器可能缓存 301 重定向,测试时需清除缓存。

服务器端配置示例(补充参考)

若需标准 301 重定向,推荐在服务器配置中完成:

js实现301重定向

Apache (.htaccess)

Redirect 301 /old-page https://example.com/new-page

Nginx

location /old-page {
    return 301 https://example.com/new-page;
}

标签: 重定向js
分享给朋友:

相关文章

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含inp…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

php实现重定向

php实现重定向

使用header函数进行重定向 在PHP中,header()函数是实现重定向的常用方法。通过发送HTTP头信息Location,浏览器会自动跳转到指定URL。需确保在调用header()前没有输出任何…