这工作(或似乎是)今天早些时候,但我最近重新启动我的服务器,现在Apache似乎不承认我的端口80虚拟主机。
我的网站来自/var/www/example.com/public_html,端口80 应该redirect到HTTPS。 在我的服务器重新启动之前,这是工作; 现在它不redirect,并提供/ var / www / html中的默认内容。
我不确定服务器重新启动后是否需要启动某些进程或服务? 该网站已启用,端口443虚拟主机正在按预期工作。 Apache版本是2.4.27,OS是Ubuntu 17.10。 这是我的conf文件在/etc/apache2/sites-available/example.com.conf。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule ssl_module modules/mod_ssl.so <VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] </IfModule> </VirtualHost> <VirtualHost *:443> SSLEngine On SSLCertificateKeyFile /etc/ssl/private/example_com.key SSLCertificateFile /etc/ssl/certs/example_com.crt SSLCertificateChainFile /etc/ssl/certs/example_com.ca-bundle ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html ProxyPreserveHost On ProxyPass /api http://localhost:1337/api ProxyPassReverse /api http://localhost:1337/api <directory /var/www/example.com/public_html/> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.html [L] </IfModule> </directory> </VirtualHost>
你的configuration中有以下的地方吗?
NameVirtualHost *:80 NameVirtualHost *:443
那些需要匹配你在<VirtualHost>块中使用的内容