通过http和https观看网站都工作,但更喜欢configuration它,以便所有访问者只通过SSL连接,以便始终以http:// www .example.com开始 – 我错过了什么?
我正在尝试执行以下操作:
请访问http://example.com并转到https://www.example.com
请访问http://www.example.com并转到https://www.example.com
请访问https://example.com并转至https://www.example.com
我在文件夹/ etc / apache2 / sites-available中创build并启用了文件名examplesite(见下文)
<VirtualHost example.com:80> ServerName www.example.com ServerAlias example.com Redirect permanent / https://www.example.com/ </VirtualHost> <VirtualHost www.example.com:443> ServerName www.example.com DocumentRoot /var/www/example.com/public_html ... ... </VirtualHost>
看起来像你的第一个虚拟主机不符合虚拟主机的最低要求
Inside each <VirtualHost> block, you will need at minimum a ServerName directive to designate which host is served and a DocumentRoot directive to show where in the filesystem the content for that host lives.
所以,添加一个
DocumentRoot /var/www/example.com/public_html
在第一个虚拟主机,看看是怎么回事
来源: apache.org
奇怪我正在寻找mod_rewrite方法,我今天发现这个链接:
https://stackoverflow.com/questions/16200501/http-to-https-apache-redirection
VirtualHost条目需要IP地址,不能使用fqdn。 改变你的
至
…
对于问题的第二部分,将example.comredirect到www.example.com,您将需要使用重写模块:
RewriteEngine On RewriteCond%{HTTP_HOST} ^ example.com [nocase] RewriteRule ^(。*) http://www.example.com/ $ 1 [last,redirect = 301]
这将在所有地址的开头添加一个www。