Назад | Перейти на главную страницу

Показывает индекс www / без www, нормально работает с www

Я работаю с Python, Flask и Apache, и я застрял. когда я пытаюсь зайти на свой веб-сайт, используя www, он работает нормально. однако, когда я удаляю www, на сайте отображается «index of /» с пустым списком файлов. Прочитал все возможные решения, в моем случае ничего не работает. Я работаю с WSGI, что означает, что DocumentRoot не имеет значения, потому что я использую переменную WSGIScriptAlias. Я использую ServerAlias ​​в соответствии с инструкциями - не помогает. Я установил 2 отдельные записи A в своих параметрах DNS, оба указывают на один и тот же IP-адрес. когда я проверяю веб-сайт с www и без него, отображается тот же IP-адрес

<VirtualHost *:80>
    ServerName mysite.com
    ServerAlias www.mysite.com
    WSGIScriptAlias / /var/www/mysite/mysite.wsgi
    <Directory /var/www/mysite/mysite/>
        Order allow,deny
        Allow from all
    </Directory>
    Alias /static /var/www/mysite/mysite/app/static
    <Directory /var/www/mysite/mysite/app/static/>
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
... 

</VirtualHost>

Любые идеи?

Это результат выполнения команды "apachectl -S":

VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server mysite.com (/etc/apache2/sites-enabled      /000-default.conf:1) 
     port 80 namevhost mysite.com (/etc/apache2/sites-enabled    /000-default.conf:1)
     port 80 namevhost mysite.com (/etc/apache2/sites-enabled    /mysite.conf:1)
             alias www.mysite.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl 
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Похоже, что /etc/apache2/sites-enabled/000-default.conf сначала соответствует вашему запросу. Удалите этот файл, и это может помочь.

Обновить

Сохранять виртуальный хост по умолчанию или нет, зависит от вас и от того, чего вы хотите. Если вам требуется точное совпадение с доменами, которые вы размещаете, виртуальный хост по умолчанию будет управлять всеми запросами, которые поступают на ваш сервер и не принадлежат ни одному домену. Примером такого запроса может быть, если вы просто укажете IP сервера в браузере.

Однако есть случаи, когда можно отключить виртуальный хост по умолчанию. Пример: у вас есть несколько доменов, использующих один и тот же корень документа. И вы хотите добавлять / удалять домены без перенастройки apache.

Чтобы понять процесс сопоставления виртуальных хостов, я предлагаю прочитать следующий документ: https://httpd.apache.org/docs/2.4/vhosts/details.html