Skip to content

프록시

TIP

업데이트: 더 쉬운 프록시 기능을 위해 새로운 Proxy Helper를 도입했다. 자세한 내용은 Proxy Helper 문서를 참고하라.

ts
import { Hono } from 'hono'

const app = new Hono()

app.get('/posts/:filename{.+.png$}', (c) => {
  const referer = c.req.header('Referer')
  if (referer && !/^https:\/\/example.com/.test(referer)) {
    return c.text('Forbidden', 403)
  }
  return fetch(c.req.url)
})

app.get('*', (c) => {
  return fetch(c.req.url)
})

export default app

TIP

비슷한 코드에서 Can't modify immutable headers. 오류가 발생한다면, 응답 객체를 복제해야 한다.

ts
app.get('/', async (_c) => {
  const response = await fetch('https://example.com')
  // 헤더를 수정 가능한 응답을 반환하기 위해 응답을 복제한다
  const newResponse = new Response(response.body, response)
  return newResponse
})

fetch로 반환된 Response의 헤더는 불변이다. 따라서 이를 수정하려고 하면 오류가 발생한다.

Released under the MIT License.