Azure / Azure/static-web-apps-cli
Support for trailingSlash config
- Dominant language
- TypeScript
- Stars
- 668
- Forks
- 156
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
staticwebappconfig.json will include a property to configure trailingSlash behavior:
The following normalization and redirect rules will apply for each of the available configurations:
### Always
When setting trailingSlashes to `always`, all requests that don't include a trailing slash will be redirected to a trailing slash URL. For example, `/contact` will be redirected to `/contact/`.
```json
"trailingSlash": "always"
```
| Requests to... | returns... | with the status... | and path... |
|--|--|--|--|
| _/about_ | The _/about/index.html_ file | `301` | _/about/_ |
| _/about/_ | The _/about/index.html_ file | `200` | _/about/_ |
| _/about/index.html_ | The _/about/index.html_ file | `301` | _/about/_ |
| _/contact_ | The _/contact.html_ file | `301` | _/contact/_ |
| _/contact/_ | The _/contact.html_ file | `200` | _/contact/_ |
| _/contact.html_ | The _/contact.html_ file | `301` | _/contact/_ |
### Never
When setting trailingSlash to `never`, all requests ending in a trailing slash will be redirected to a non-trailing slash URL. For example, `/contact/` will be redirected to `/contact`.
```json
"trailingSlash": "never"
```
| Requests to... | returns... | with the status... | and path... |
|--|--|--|--|
| _/about_ | The _/about/index.html_ file | `200` | _/about_ |
| _/about/_ | The _/about/index.html_ file | `301` | _/about_ |
| _/about/index.html_ | The _/about/index.html_ file | `301` | _/about_ |
| _/contact_ | The _/contact.html_ file | `200` | _/contact_ |
| _/contact/_ | The _/contact.html_ file | `301` | _/contact_ |
| _/contact.html_ | The _/contact.html_ file | `301` | _/contact_ |
### Auto
When setting trailingSlash to `auto`, all requests to folders will be redirected to a URL with a trailing slash. All requests to files will be redirected to a non-trailing slash URL.
```json
"trailingSlash": "auto"
```
| Requests to... | returns... | with the status... | and path... |
|--|--|--|--|
| _/about_ | The _/about/index.html_ file | `301` | _/about/_ |
| _/about/_ | The _/about/index.html_ file | `200` | _/about/_ |
| _/about/index.html_ | The _/about/index.html_ file | `301` | _/about/_ |
| _/contact_ | The _/contact.html_ file | `200` | _/contact_ |
| _/contact/_ | The _/contact.html_ file | `301` | _/contact_ |
| _/contact.html_ | The _/contact.html_ file | `301` | _/contact_ |
By default, when the trailingSlash configuration is omitted, Azure Static Web Apps will apply the following rules:
| Requests to... | returns... | with the status... | and path... |
|--|--|--|--|
| _/about_ | The _/about/index.html_ file | `200` | _/about_ |
| _/about/_ | The _/about/index.html_ file | `200` | _/about/_ |
| _/about/index.html_ | The _/about/index.html_ file | `200` | _/about/index.html_ |
| _/contact_ | The _/contact.html_ file | `200` | _/contact_ |
| _/contact/_ | The _/contact.html_ file | `301` | _/contact_ |
| _/contact.html_ | The _/contact.html_ file | `200` | _/contact.html_ |
**Describe the solution you'd like**
Static Web Apps CLI should apply the same redirect and normalization rules.
Contributor guide
Assessment
This issue has not been assessed yet.