It seems by default django\'s url solver perform case sensitive search for solving url and differentiate between \'/Login\' and \'login\'. My url patterns are as follows.
With Django 2.0 (released in December 2017) the recommended way to use regular expressions for URL-matching is now re_path instead of url
:
from django.urls import path, re_path
from . import views
urlpatterns = [
re_path(r'^(?i)admin/(.*)', admin.site.root),
re_path(r'^(?i)something/(?P\w+)/$', views.something),
re_path(r'^(?i)login/$', views.login),
re_path(r'^(?i)logout/$', views.logout),
]