首先,您应该确保在您的 apache 上启用 mod_rewrite 和 ssl,通过此代码
sudo a2enmod rewrite
sudo a2enmod ssl
然后重启你的apache
sudo service apache2 restart
现在按照以下步骤操作
sudo nano /etc/apache2/sites-enabled/000-default.conf
并添加此代码
<VirtualHost *:80>
ServerName my.site.com
ServerAlias my.site.com
DocumentRoot /var/www/SITE-PATH
<Directory /var/www/SITE-PATH>
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>
然后转到您的网站目录/var/www/SITE-PATH 并将此代码添加到您的.htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
为了您在路径 /etc/apache2/sites-enabled/default-ssl.conf 上的 ssl 信用
你应该有这样的东西
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerAdmin admin@example.com
ServerName my.site.com #important
ServerAlias my.site.com #important
DocumentRoot /var/www/SITE-PATH #important
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt #important
SSLCertificateKeyFile /etc/apache2/ssl/apache.key #important
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
如果你走的所有步骤都正确,你应该有这个
http://my.site.com => 重定向到 => https://my.site.com
编辑:
有关 SSL 的更多详细信息,请关注 How To Create a SSL Certificate on Apache for Ubuntu 14.04 和 this post