我想在 Hostinger 上托管 Nextjs 网站,因此我在下一个配置中使用
output: 'export'
将 Nextjs 作为静态导出到(出)目录中
我将静态文件上传到托管商上并且成功了。 但是一旦刷新除主页之外的任何页面,Hostinger 就无法提供该页面并显示 404 页面
那么这里有什么问题以及如何调试它
我发现问题是 url 末尾没有明确包含
.html
,因为例如当路由是 /test
时,托管主机上的 apache 正在寻找目录调用 test
并且有 index.html
文件,但相反nextjs 导出带有名称的 html 文件 test.html
,这样 apache 就找不到这个目录并返回 404
。
解决方案是在
.htaccess
目录中创建 public_html
文件并配置 apache 按名称提供 HTML 文件
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]