Сначала спасибо, что прочитали: X
Проблема + Описание:
Я перенаправляю http-трафик c с любого IP-адреса на порт 80 на 10.0.0.1:8080 (django) через linux apache и iptables.
Когда веб-пользователь отправляет запрос по этому URL-адресу (hello.gggstati c .com / generate_204 ******), я обрабатывать путь к **generate_204**
URL-адресу, используя это правило: re_path('.*generate_204.*', lambda r: HttpResponseRedirect('splash/')),
.
Buuuuut, users are seeing `//splash/` instead of `/splash/` in browser.
`http://10.0.0.1:8080//splash/` #django 404 not found
users must see:
`http://10.0.0.1:8080/splash/` #django can handle it and via "include('splash.urls')"
Проблема: Как управлять / удалять / обрабатывать "//" в адресной строке URL-адреса! ! ??
Журнал:
[09/May/2020 13:43:36] "GET //generate_204 HTTP/1.1" 302 0
Not Found: //splash/
[09/May/2020 13:43:36] "GET //splash/ HTTP/1.1" 404 2328
мой файл urls.py в django -проекте:
urlpatterns = [
re_path('/static/', serve,{'document_root': settings.STATICFILES_DIRS}),
re_path('.*generate_204.*', lambda r: HttpResponseRedirect('splash/')),
path('', lambda r: HttpResponseRedirect('splash/')),
#path('admin/', admin.site.urls),
path('splash/', include('splash.urls')),
]
мои URL-адреса. py файл в django -приложении:
urlpatterns = [
re_path('^$', views.start, name='start'),
re_path('index/$', views.start, name='start'),
path('validation', views.validation, name='validation'),
path('bye', views.goodbye, name='goodbye'),
]
Я отредактировал свой вопрос:
path('splash/', include('splash.urls')),
#above line failed to handle //splash behavior.
to:
re_path('.*splash/', include('splash.urls')),
#above line works. but it's not ok. and we can have everything here between ip/domin:8080 and /splash: http://10.0.0.1/******/splash/. and this behavior is bad for url handling.