给出了我的.htaccess规则集。
我可以重定向
http://example.com到https://www.example.com
http://www.example.com到https://www.example.com
但是https://example.com并没有重定向到https://www.example.com
在火狐上给这个连接是不可信的错误
@Tobias K. google.com Subject Alt Name
Not Critical
DNS Name: www.google.com但是它还是从https://google.com重定向到https:www.google.com
.htaccess
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_URI} .html$
RewriteRule ^(.*).html$ /$1.php [R=301,L]
</IfModule>我在Apache2.2.34 (AWS )上使用vhost配置
给出我的vhost配置
vhost.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com example.com
DocumentRoot /var/www/vhosts/example.com
ServerAdmin itsupport@example.com
ErrorLog /var/www/vhosts/logs/example.com/error_log
<Directory /var/www/vhosts/example.com>
AllowOverride All
</Directory>
</VirtualHost>ssl.conf
<VirtualHost *:443>
DocumentRoot /var/www/vhosts/example.com
ServerName example.com
ServerAlias www.example.com example.com
SSLEngine on
SSLCertificateFile /home/ec2-user/new_cert/www_parentcompany_com.crt
SSLCertificateKeyFile /home/ec2-user/www_parentcompany_com.key
SSLCertificateChainFile /home/ec2-user/new_cert/DigiCertCA.crt
<Directory /var/www/vhosts/example.com>
AllowOverride All
</Directory>
</VirtualHost>如果我漏掉了什么,请告诉我。
试着给出解决办法,但没有运气。
htaccess redirect to "https://www."
htaccess redirect to https://www
谢谢。
发布于 2018-08-25 12:29:55
这个问题可能有两个原因:
1.来自SSL证书一式两份:
既然你说:
在火狐上给这个连接是不可信的错误
有些CA会自动添加带有example.com的www.example.com版本,有些则不会。确保SSL证书对www.example.com和example.com都有效。
可以使用以下命令检查证书:
openssl s_client -connect example.com:443 | openssl x509 -noout -text你可以看到google有*.google.com和google.com
2. Apache虚拟主机:
根据这个..。
我可以重定向 http://example.com到https://www.example.com http://www.example.com到https://www.example.com
...and这个..。
.我在想,您成功地完成了http的配置,因为这两个
但是,从https://example.com重定向到https://www.example.com必须在htps (:443)虚拟主机配置中指定。这些规则不能由http (:80)虚拟主机配置文件确定。
为了解决这个问题,您必须将这些重写规则添加到ssl.conf文件中:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,NE,R=permanent]所以,可能是这样的:
<VirtualHost *:443>
DocumentRoot /var/www/vhosts/example.com
ServerName example.com
ServerAlias www.example.com example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,NE,R=permanent]
SSLEngine on
SSLCertificateFile /home/ec2-user/new_cert/www_parentcompany_com.crt
SSLCertificateKeyFile /home/ec2-user/www_parentcompany_com.key
SSLCertificateChainFile /home/ec2-user/new_cert/DigiCertCA.crt
<Directory /var/www/vhosts/example.com>
AllowOverride All
</Directory>
</VirtualHost>https://stackoverflow.com/questions/52016798
复制相似问题