Trailing Slash ミドルウェア
このミドルウェアは、GET リクエストの URL の末尾スラッシュを処理します。
コンテンツが見つからない場合、appendTrailingSlash は末尾スラッシュを追加した URL にリダイレクトします。trimTrailingSlash は末尾スラッシュを削除します。
インポート
ts
import { Hono } from 'hono'
import {
appendTrailingSlash,
trimTrailingSlash,
} from 'hono/trailing-slash'使い方
/about/me への GET リクエストを /about/me/ にリダイレクトする例です。
ts
import { Hono } from 'hono'
import { appendTrailingSlash } from 'hono/trailing-slash'
const app = new Hono({ strict: true })
app.use(appendTrailingSlash())
app.get('/about/me/', (c) => c.text('With Trailing Slash'))/about/me/ への GET リクエストを /about/me にリダイレクトする例です。
ts
import { Hono } from 'hono'
import { trimTrailingSlash } from 'hono/trailing-slash'
const app = new Hono({ strict: true })
app.use(trimTrailingSlash())
app.get('/about/me', (c) => c.text('Without Trailing Slash'))オプション
optional alwaysRedirect: boolean
デフォルトでは、末尾スラッシュのミドルウェアはレスポンスのステータスが 404 の場合だけリダイレクトします。alwaysRedirect を true にすると、ハンドラーの実行前にリダイレクトします。デフォルト動作が機能しないワイルドカードルート(*)で役立ちます。
ts
const app = new Hono()
app.use(trimTrailingSlash({ alwaysRedirect: true }))
app.get('/my-path/*', (c) => c.text('Wildcard route'))このオプションは、trimTrailingSlash と appendTrailingSlash の両方で利用できます。
optional skip: (path: string) => boolean
リクエストパスに基づき、リダイレクトを省略するか判断する関数です。true を返すと省略します。拡張子を持つパスなど、特定のパスをリダイレクトから除外したい場合に役立ちます。
ts
app.use(
appendTrailingSlash({
skip: (path) => /\.\w+$/.test(path),
})
)このオプションは、trimTrailingSlash と appendTrailingSlash の両方で利用できます。
注意
リクエストメソッドが GET で、レスポンスのステータスが 404 の場合に有効になります。