Next.js将www重定向到非www

6
我一直在尝试通过谷歌搜索找到可行的解决方案,但是没有找到确切的方法。我将我的Next.js应用程序托管在Vercel上。
当我运行SEO检查时,它会抱怨我的网站同时出现在www和非www上,并建议我选择一个并进行重定向。在我的情况下,如果有人输入www.example.com,我希望它不带www。
由于我没有htaccess文件可以使用,我该如何实现这一点?
不确定是否有影响,但我正在使用WordPress作为我的后端,也就是头部分离式Wordpress。

我建议阅读重定向域名 - juliomalves
@juliomalves 谢谢你的回复。但是这篇文章是2019年的,当我尝试在我的vercel账户中查找时,并没有看到它。我不知道这是否可能是因为我只是将A记录指向了vercel而不是名称服务器? - Waterfall
我想要将非www重定向到www,请帮忙。 - haxora
你解决了吗?被采纳的答案对我没有用。我也尝试了各种变化,但似乎什么都不起作用... - Reinier68
2个回答

15

我想要将非 www 重定向到 www,请帮我。 - haxora
@haxora,只需将“has.value”更改为“yourdomain.com”,并在目标网址前添加www即可。 - rvanlaarhoven
{ "source": "/", "has": [{ "type": "host", "value": "https://learnbay.co" }], "destination": "https://www.learnbay.co/", "permanent": false }这是我的代码,我尝试了所有可能的方法,但默认情况下它无法重定向到www。@rvanlaarhoven - haxora
destination 应该是一个有效的URL,所以:https://www.learnbay.co - rvanlaarhoven
我使用了类似的东西,因为我认为这样做不会起作用。你应该像这样使用has: [{type: 'header', key: 'host', value: 'www.yourdomain.com'}] - Norman Pleitez
这是处理使所有路由都使用SSL的正确方式吗? - AndrewLeonardi

0
你可以使用下面的代码轻松处理Next.js中的永久重定向。
export const getServerSideProps = async (context) => {
    const { req, res } = context;

    if (req.headers.host.match(/^www/) !== null) {
        res.writeHead(301, {
            location: "https://" + req.headers.host.replace(/^www./, "") + req.url,
        });
        res.end();
    }

    return { props: {} };
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接