diff --git a/docs/advanced-features/middleware.md b/docs/advanced-features/middleware.md index 3d2029b3ff93..7812da86b3aa 100644 --- a/docs/advanced-features/middleware.md +++ b/docs/advanced-features/middleware.md @@ -88,6 +88,22 @@ export const config = { } ``` +The `matcher` config allows full regex so matching like negative lookaheads or character matching is supported. An example of a negative lookahead to match all except specific paths can be seen here: + +```js +export const config = { + matcher: [ + /* + * Match all request paths except for the ones starting with: + * - api (API routes) + * - static (static files) + * - favicon.ico (favicon file) + */ + '/((?!api|static|favicon.ico).*)', + ], +} +``` + > **Note:** The `matcher` values need to be constants so they can be statically analyzed at build-time. Dynamic values such as variables will be ignored. Configured matchers: @@ -101,8 +117,6 @@ Read more details on [path-to-regexp](https://github.com/pillarjs/path-to-regexp > **Note:** For backward compatibility, Next.js always considers `/public` as `/public/index`. Therefore, a matcher of `/public/:path` will match. -> **Note:** It is not possible to exclude middleware from matching static path starting with `_next/`. This allow enforcing security with middleware. - ### Conditional Statements ```typescript