概要
Djangoのアプリケーションでは、末尾にスラッシュがないURLでアクセスするとスラッシュ有りのURLに301でリダイレクトされるという事象がある。
これはsettings.pyのAPPEND_SLASH
という設定値がデフォルトでTrueになっていることに依る。
docs.djangoproject.com
リダイレクトさせたくなければ、settings.pyでAPPEND_SLASH = False
に設定するとリダイレクトされなくなる。
困ること
上記の仕様を把握していれば問題ないが、知らないと以下のようなケースではまる可能性がある。
背景の考察
issueレベルでの根拠は見つけられなかったが、想像するにDjangoがリリースされたのは2005年なので、その頃は末尾にスラッシュ有りと無しのURLが混在していると、SEOの評価が分散してしまうという問題があったはずである。
それで、Djangoを使う側でその問題を意識しなくてよいように、デフォルトでTrueにしてくれているのではないか?
私の意見
メジャーなサイトをいくつかみてみたが、今日ではリダイレクトしない方が主流のようだし、SEOの評価が分散するという話も聞かなくなった気がする。
なので、APPEND_SLASH = False
にしてもデメリットは特にないと思うので、Falseにしてしまってもよいと思う。