SSL на локальном хосте Xampp с использованием VirtualHost на Windows перенаправляет на страницу информации / локального хоста Xampp по умолчанию - PullRequest
0 голосов
/ 09 января 2020

Я прочитал довольно много сообщений о настройке SSL в Xampp / Windows / Apache / VirtualHost и думаю, что все сделал правильно, но когда я вхожу в URL-адрес virtualhost (q.localhost), я всегда получаю локальный хост по умолчанию Информационная страница Xampp, которая гласит: 'http://q.localhost/xampp/' в строке URL-адреса.

Ниже приведено то, что у меня есть в моих различных файлах, которые я считаю актуальными:

Apache httpd.conf:

LoadModule ssl_module modules/mod_ssl.so

Apache httpd-vhosts.conf:

<Directory C:/vhost>
    AllowOverride All
    Require all granted
</Directory>

#this is the default address of XAMPP    
<VirtualHost *:80>
    DocumentRoot "C:/XAMPP/htdocs/"
    ServerName localhost
</VirtualHost>

#this is the first vhost address in XAMPP
<VirtualHost *:443>
    DocumentRoot "C:/XAMPP/htdocs/data/anycompany"
    ServerName q.localhost
    <Directory "C:/XAMPP/htdocs/data/anycompany">
        AllowOverride All
        Order Deny,Allow   
        Allow from all 
    </Directory>
    SSLEngine On
    SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/server.key"
</VirtualHost>

###### THIS WORKS, BUT COMMENTED OUT REPLACED BY THE ABOVE  ########
#this is the first vhost address in XAMPP
#<VirtualHost *:80>
#    DocumentRoot "C:/XAMPP/htdocs/data/anycompany"
#    ServerName q.localhost
#</VirtualHost>

Windows Файл хоста:

127.0.0.1       localhost
127.0.0.1       q.localhost
127.0.0.1       test.localhost

Apache httpd-ssl.conf:

DocumentRoot "C:/xampp/htdocs/data/anycompany"
ServerName q.localhost:443
ServerAdmin admin@localhost.com

Apache версия 1.8.3 используется. Кажется, в журнале ошибок apache нет сообщений об ошибках.

1 Ответ

0 голосов
/ 12 января 2020

решено:

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

  1. Не удалось набрать q.localhost в окне URL-адреса и перенаправить на страницу по умолчанию Xampp. Пришлось включить https: // перед URL, поэтому, набрав "https://q.localhost", вы получили правильную страницу. Однако щелчок по другим ссылкам на веб-сайте также не удался, так как это требовалось, но у него не было «https://...» перед ссылкой.

  2. Чтобы исправить вышеперечисленное проблема, я ссылался на эту статью . который предложил добавить перенаправления в файл конфигурации: \ xampp \ apache \ conf \ extra \ httpd-xampp.conf. Я добавил, что он предложил включить автоматические c перенаправления без необходимости всегда вводить "https://..."

    <IfModule mod_rewrite.c>

        RewriteEngine On
    
        # Redirect /xampp folder to https
        RewriteCond %{HTTPS} !=on
        RewriteCond %{REQUEST_URI} xampp
        RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
    
        # Redirect /phpMyAdmin folder to https
        RewriteCond %{HTTPS} !=on
        RewriteCond %{REQUEST_URI} phpmyadmin
        RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
    
        # Redirect /security folder to https
        RewriteCond %{HTTPS} !=on
        RewriteCond %{REQUEST_URI} security
        RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
    
        # Redirect /webalizer folder to https
        RewriteCond %{HTTPS} !=on
        RewriteCond %{REQUEST_URI} webalizer
        RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
    
        # Redirect /folder_name folder to https
        RewriteCond %{HTTPS} !=on
        RewriteCond %{REQUEST_URI} folder_name
        RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
    

    </IfModule>

...