js实现301
使用JavaScript实现301重定向
在JavaScript中实现301重定向可以通过修改window.location对象或使用服务器端技术。需要注意的是,纯JavaScript无法直接发送HTTP 301状态码,因为状态码由服务器控制。以下是几种实现方式:
客户端重定向(非真正的301)
window.location.replace("https://example.com/new-url");
replace()方法不会在浏览器历史记录中留下原始页面,模拟了301重定向的部分行为。
配合服务器端实现301 真正的301重定向需要服务器配置,以下是常见服务器的配置示例:
.htaccess (Apache)
Redirect 301 /old-page.html https://example.com/new-page.html
Nginx配置
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
Node.js Express框架
app.get('/old-url', (req, res) => {
res.redirect(301, '/new-url');
});
注意事项
客户端重定向无法传递301状态码,搜索引擎仍会视为普通重定向。要实现SEO友好的301重定向,必须通过服务器配置完成。
对于单页应用(SPA),可以在路由配置中设置重定向:
const router = new VueRouter({
routes: [
{ path: '/old-path', redirect: '/new-path' }
]
})
最佳实践
- 重要URL变更应始终使用服务器端301重定向
- 临时重定向可使用302状态码
- 大量URL重定向建议使用正则表达式匹配模式
- 确保重定向链不超过一次跳转







