如何配置代理服务器以支持Supreme动态item_id路由请求?
解决动态路由代理404的问题
你的问题核心很明确:代理服务器目前只配置了固定的静态路由转发规则,完全没处理/shop/${item_id}.json这类动态生成的请求,所以业务代码发起这类请求时,代理服务器找不到对应的路由逻辑,直接返回404。
具体修复步骤:
1. 修改server.js,添加通用路由转发逻辑
把原来硬编码的单个路由(/和/mobile_stock.json)替换成能处理所有GET请求的通用转发规则,不管是静态还是动态路径,都会被正确转发到目标网站:
const express = require('express'); const request = require('request'); const cors = require('cors'); const app = express(); app.use((req, res, next) => { res.header('Access-Control-Allow-Origin', '*'); next(); }); app.options('*', cors()); // 处理所有GET请求,自动转发到supremenewyork.com对应路径 app.get('*', (req, res) => { // 拼接目标URL:把代理收到的请求路径直接追加到目标域名后 const targetUrl = `https://supremenewyork.com${req.url}`; request(targetUrl, (error, response, body) => { if (error) { return res.status(500).json({ type: 'error', message: error.message }); } // 直接返回目标网站的状态码和响应内容 res.status(response.statusCode).send(body); }); }); const PORT = process.env.PORT || 8050; app.listen(PORT, () => console.log(`listening on ${PORT}`));
2. 验证业务代码的请求路径
确保业务代码里的itemLink生成格式正确(比如/shop/12345.json),代理服务器会自动把它转发到https://supremenewyork.com/shop/12345.json,不会再出现404。
可选优化:用专业代理中间件提升稳定性
如果后续需要处理更复杂的代理场景(比如POST请求、请求头转发等),推荐使用http-proxy-middleware包,比手动用request更可靠:
- 先安装依赖:
npm install http-proxy-middleware
- 修改
server.js:
const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); const cors = require('cors'); const app = express(); app.use(cors()); // 配置透明代理规则 app.use('*', createProxyMiddleware({ target: 'https://supremenewyork.com', changeOrigin: true, pathRewrite: { '^/': '/' // 保持请求路径不变,直接转发 } })); const PORT = process.env.PORT || 8050; app.listen(PORT, () => console.log(`listening on ${PORT}`));
这样配置后,所有请求都会被透明转发到目标网站,完美解决动态路由的问题。
内容的提问来源于stack exchange,提问作者frankied003
相关产品推荐
相关产品推荐

