代码之家  ›  专栏  ›  技术社区  ›  Abraham Brookes

带通配符子域的Apache http.conf

  •  0
  • Abraham Brookes  · 技术社区  · 5 年前

    我有一个白色标签的web应用程序,运行子域来划分标签。比如说 cust1.app.com cust2.app.com . 我的站点上有SSL,但是我无法使站点从 http https . 我想做的就是 http.conf ,与 .htaccess 文件夹。这是我的 http.conf格式 :

    <VirtualHost *:443>
    
        <Directory /var/www/html/>
            Options -Indexes
            Require all granted
            AllowOverride All
        </Directory>
    
        ServerAlias *.app.com
    
        DocumentRoot /var/www/app
    
        SSLEngine on
        SSLCertificateFile /var/www/certs/cert.pem
        SSLCertificateKeyFile /var/www/certs/privkey.pem
        SSLCertificateChainFile /var/www/certs/fullchain.pem
    
    </VirtualHost>
    
    <VirtualHost *:80>
    
        ServerAlias *.app.com
    
        RewriteEngine On 
        RewriteCond %{HTTPS} !=on 
        RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
    
    </VirtualHost>
    

    参观时 http://www.app.com http://cust1.app.com ,我得到一个简单的 ERR_CONNECTION_REFUSED ,但是当我手动输入 https协议 ,该站点可以在所有子域上正常工作。

    如何重定向到https,同时遵守我的通配符子域?

    1 回复  |  直到 5 年前
        1
  •  0
  •   Abraham Brookes    5 年前

    结果我错过了 Listen 端口80的指令,我一定是从 ports.conf 或者在长时间的头发拉扯故障排除过程中的某个时刻。这是我的 http.conf 现在:

    Listen 80
    Listen 443
    
    <VirtualHost *:443>
    
        <Directory /var/www/html/>
            Options -Indexes
            Require all granted
            AllowOverride All
        </Directory>
    
        ServerAlias *.app.com
    
        DocumentRoot /var/www/app
    
        SSLEngine on
        SSLCertificateFile /var/www/certs/cert.pem
        SSLCertificateKeyFile /var/www/certs/privkey.pem
        SSLCertificateChainFile /var/www/certs/fullchain.pem
    
    </VirtualHost>
    
    <VirtualHost *:80>
    
        ServerAlias *.app.com
    
        RewriteEngine On 
        RewriteCond %{HTTPS} !=on 
        RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
    
    </VirtualHost>