在Nuxt.js中实现从"www"到非"www"的重定向,可以通过配置Nginx或使用中间件来实现。以下是两种方法的详细步骤:
方法一:通过Nginx配置实现重定向
nuxt.config.js
文件,打开并添加以下代码:export default {
server: {
port: 3000, // 默认端口号为3000
host: '0.0.0.0', // 通过Nginx反向代理时需要设为0.0.0.0
},
}
/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
),添加以下代码:server {
listen 80;
server_name www.example.com;
return 301 http://example.com$request_uri;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
替换上述代码中的www.example.com
为您的域名,example.com
为您要重定向到的域名。
sudo service nginx reload
。www.example.com
时,Nginx将自动重定向到example.com
。方法二:通过中间件实现重定向
middleware
的文件夹。middleware
文件夹中,创建一个名为redirect.js
的文件,并添加以下代码:export default function ({ req, res, redirect }) {
const host = req.headers.host || ''
const isWWW = host.includes('www.')
if (isWWW) {
const redirectURL = `https://${host.replace('www.', '')}${req.url}`
return redirect(301, redirectURL)
}
}
nuxt.config.js
文件中的router
部分添加中间件配置,代码如下:export default {
router: {
middleware: 'redirect'
}
}
www.example.com
时,中间件将自动重定向到example.com
。以上是在Nuxt.js中实现从"www"到非"www"的重定向的两种方法,您可以根据实际需求选择适合您的方法进行配置。
领取专属 10元无门槛券
手把手带您无忧上云