如何在Next.js静态导出时实现非www及HTTP到HTTPS的重定向?
静态导出Next.js项目在Hostinger的重定向方案
你之前用next.config.js里的redirects()配置无效,核心原因是next export生成的是纯静态文件,Next.js的这个重定向逻辑依赖Node.js服务端处理请求,静态部署场景下没有服务端环境,所以压根走不到这个逻辑。
解决这个问题得用Hostinger主机的服务器配置来实现,直接在网站根目录加.htaccess文件就行——这是Apache服务器(Hostinger共享主机默认使用)做重定向的标准方式,完全适配静态网站。
具体配置代码
在你的静态项目根目录(上传到Hostinger的public_html或对应网站根目录)创建.htaccess文件,写入以下内容:
# 开启URL重写引擎 RewriteEngine On # 强制所有HTTP请求跳转至HTTPS RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # 强制非www域名跳转至www域名(HTTPS) RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.my-website.com/$1 [L,R=301]
配置说明
- 把代码里的
my-website.com替换成你自己的实际域名 R=301表示永久重定向,这是对SEO最友好的重定向类型,搜索引擎会把旧地址的权重转移到新地址- 先处理HTTP转HTTPS,再处理非www转www,顺序不要调换
操作步骤
- 在本地静态导出的项目根目录创建
.htaccess文件,粘贴上述配置并修改域名 - 将这个文件和其他静态文件一起上传到Hostinger的网站根目录(通常是
public_html) - 测试验证:访问
http://your-domain.com或http://www.your-domain.com,应该都会自动跳转到https://www.your-domain.com
内容的提问来源于stack exchange,提问作者Prashant Patel
相关产品推荐
相关产品推荐

