Мой поддомен продолжает перенаправлять на мой основной домен - PullRequest
0 голосов
/ 16 февраля 2020

Я уверен, что об этом, должно быть, уже спрашивали несколько раз, я исследовал это как день, но все еще не мог понять это.

У меня есть домен - domain.com и теперь я хочу добавить поддомен - test.domain.com для него. Я создал файл виртуального хоста и запись DNS A - test.domain.com , указывающую на IP-адрес моего сервера. Но затем всякий раз, когда я пытаюсь получить доступ к своему test.domain.com , он продолжает перенаправлять на domain.com . Мои файлы виртуального хоста Apache2 настроены следующим образом:

domain.com.conf

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/domain.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =www.domain.com [OR]
        RewriteCond %{SERVER_NAME} =domain.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<Directory "/var/www/domain.com">
    AllowOverride All
</Directory>

domain.com-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/domain.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined


ServerName domain.com
Include /etc/letsencrypt/options-ssl-apache.conf
ServerAlias www.domain.com
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem

</VirtualHost>
</IfModule>

test.domain.com.conf

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/test.domain.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =www.test.domain.com [OR]
        RewriteCond %{SERVER_NAME} =test.domain.com
        RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<Directory "/var/www/test.domain.com">
    AllowOverride All
</Directory>

Я включил файлы conf с помощью команды a2ensite и перезапустил apache (и отчаянно мой серверный дроплет ) уже несколько раз, но все еще не мог заставить его работать. Я работаю на Ubuntu 16.04.6.

Любой совет будет высоко ценится. Заранее большое спасибо!

1 Ответ

0 голосов
/ 22 февраля 2020

Пример minimalisti c будет выглядеть следующим образом:

<VirtualHost *:80>
    DocumentRoot /var/www/test.example.com
    ServerName test.example.com
    ServerAlias www.test.example.com
</VirtualHost>

В этом примере вы объявляете виртуальный хост для test.example.com, а также www.test.example.com.

Обратите внимание, что я использую здесь example.com вместо domain.com из-за ограничений размещения , активных на этом сайте.

Директивы RewriteRule в вашем поддомене, похоже, не являются верно, по крайней мере, синтаксически. Они могут вызывать проблему перенаправления. Поэтому я бы удалил их и позаботился о перенаправлениях позже. Начните с простой конфигурации, подтвердите ее и добавьте больше правил позже.

Подсказка: вы можете использовать curl (из командной строки на вашем сервере, если она недоступна на вашем P C ) для проверки так: curl -L --head "http://example.com". Проверьте основное доменное имя, затем поддомен в http и https. В Curl есть возможность игнорировать ошибки SSL / TLS, если вы их встретите.

Посмотрите, что происходит, и обратите внимание на перенаправления, если они есть (код состояния 301/302).

Я предпочитаю использовать Curl для тестирования, потому что кеш браузера может подшутить над вами.

...