Почему url моего сайта django совпадает с путем к каталогу на сервере?
Я впервые развертываю сайт django на сервере cpanel с помощью phusion passenger на cloudlinux, и он наконец-то работает, но я обнаружил странное явление, и я не знаю, нормально ли это.
когда я перехожу на базовый url сайта, главная страница появляется, как и ожидалось, и когда я нажимаю на любую ссылку, страница загружается нормально, но url отображает полный путь из каталога /home.
Так, например, вместо - https://website.net/django_app , я получаю - https://website.net/home/userdir/django_site/django_app
Я подозреваю, что это можно исправить в .htaccess, но я бы очень хотел знать, что происходит.
Вот мой файл passenger_wsgi.py, который я взял с этого сайта (https://www.a2hosting.co.uk/kb/developer-corner/python/installing-and-configuring-django-on-linux-shared-hosting), так как автоматически созданный cpanel passenger_wsgi не работал ;
1 import os
2 import sys
3
4 import django.core.handlers.wsgi
5 from django.core.wsgi import get_wsgi_application
6
7 # Set up paths and environment variables
8 sys.path.append(os.getcwd())
9 os.environ['DJANGO_SETTINGS_MODULE'] = 'django_site.deployment_settings'
10
11 # Set script name for the PATH_INFO fix below
12 SCRIPT_NAME = os.getcwd()
13
14 class PassengerPathInfoFix(object):
15 """
16 Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it.
17 """
18 def __init__(self, app):
19 self.app = app
20
21 def __call__(self, environ, start_response):
22 from urllib.parse import unquote
23 environ['SCRIPT_NAME'] = SCRIPT_NAME
24 request_uri = unquote(environ['REQUEST_URI'])
25 script_name = unquote(environ.get('SCRIPT_NAME', ''))
26 offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
27 environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
28 return self.app(environ, start_response)
29
30 # Set the application
31 application = get_wsgi_application()
32 application = PassengerPathInfoFix(application)
Надеюсь, кто-нибудь сможет помочь. Спасибо.