mirror of https://github.com/pallets/flask.git
Documented redirect behaviour. Fixes #42
This commit is contained in:
parent
cc8332e9d9
commit
9d98ad5e07
|
@ -160,6 +160,39 @@ The following converters exist:
|
||||||
`path` like the default but also accepts slashes
|
`path` like the default but also accepts slashes
|
||||||
=========== ===========================================
|
=========== ===========================================
|
||||||
|
|
||||||
|
.. admonition:: Unique URLs / Redirection Behaviour
|
||||||
|
|
||||||
|
Flask's URL rules are based on Werkzeug's routing module. The idea
|
||||||
|
behind that module is to ensure nice looking and also unique URLs based
|
||||||
|
on behaviour Apache and earlier servers coined.
|
||||||
|
|
||||||
|
Take these two rules::
|
||||||
|
|
||||||
|
@app.route('/projects/')
|
||||||
|
def projects():
|
||||||
|
pass
|
||||||
|
|
||||||
|
@app.route('/about')
|
||||||
|
def about():
|
||||||
|
pass
|
||||||
|
|
||||||
|
They look rather similar, the difference is the trailing slash in the
|
||||||
|
URL *definition*. In the first case, the canonical URL for the
|
||||||
|
`projects` endpoint has a trailing slash. It's similar to a folder in
|
||||||
|
that sense. Accessing it without a trailing slash will cause Flask to
|
||||||
|
redirect to the canonical URL with the trailing slash.
|
||||||
|
|
||||||
|
However in the second case the URL is defined without a slash so it
|
||||||
|
behaves similar to a file and accessing the URL with a trailing slash
|
||||||
|
will be a 404 error.
|
||||||
|
|
||||||
|
Why is this? This allows relative URLs to continue working if users
|
||||||
|
access the page when they forget a trailing slash. This behaviour is
|
||||||
|
also consistent with how Apache and other servers work. Also, the URLs
|
||||||
|
will stay unique which helps search engines not indexing the same page
|
||||||
|
twice.
|
||||||
|
|
||||||
|
|
||||||
.. _url-building:
|
.. _url-building:
|
||||||
|
|
||||||
URL Building
|
URL Building
|
||||||
|
|
Loading…
Reference in New Issue