Files
next.js/errors/invalid-route-source.mdx
T
74a19b7467 docs: unify the header deps by removing # (#72391)
## Summary
Remove redundant `#` from [error
pages](https://github.com/vercel/next.js/tree/canary/errors).

## Description
Follow up #52038 and #72263.
Updated
[template.txt](https://github.com/vercel/next.js/blob/canary/errors/template.txt)
and clarified the header deps.
Then rewrite as per the template.

### Improving Documentation

- [x] Run `pnpm prettier-fix` to fix formatting issues before opening
the PR.
- [x] Read the Docs Contribution Guide to ensure your contribution
follows the docs guidelines:
https://nextjs.org/docs/community/contribution-guide

Co-authored-by: Delba de Oliveira <[email protected]>
2024-11-07 08:58:43 +00:00

57 lines
1.0 KiB
Plaintext

---
title: 'Invalid Custom Route `source`'
---
## Why This Error Occurred
A pattern could not be parsed when defining custom routes or a middleware `matcher`.
This could have been due to trying to use normal `RegExp` syntax like negative lookaheads (`?!exclude`) without following [`path-to-regexp`](https://github.com/pillarjs/path-to-regexp)'s syntax.
## Possible Ways to Fix It
Wrap the `RegExp` part of your `source` as an un-named parameter.
### Custom Routes
**Before**
```js
{
source: '/feedback/(?!general)',
destination: '/feedback/general'
}
```
**After**
```js
{
source: '/feedback/((?!general).*)',
destination: '/feedback/general'
}
```
### Middleware
**Before**
```ts filename="middleware.ts"
const config = {
matcher: '/feedback/(?!general)',
}
```
**After**
```ts filename="middleware.ts"
const config = {
matcher: '/feedback/((?!general).*)',
}
```
## Useful Links
- [path-to-regexp](https://github.com/pillarjs/path-to-regexp)
- [un-named parameters](https://github.com/pillarjs/path-to-regexp#unnamed-parameters)