首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从https://重定向到https://www

从https://重定向到https://www
EN

Stack Overflow用户
提问于 2018-08-25 11:21:14
回答 1查看 1.4K关注 0票数 2

给出了我的.htaccess规则集。

我可以重定向

http://example.comhttps://www.example.com

http://www.example.comhttps://www.example.com

但是https://example.com并没有重定向到https://www.example.com

在火狐上给这个连接是不可信的错误

@Tobias K. google.com Subject Alt Name

代码语言:javascript
复制
Not Critical
DNS Name: www.google.com

但是它还是从https://google.com重定向到https:www.google.com

.htaccess

代码语言:javascript
复制
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

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-08-25 12:29:55

这个问题可能有两个原因:

1.来自SSL证书一式两份:

既然你说:

在火狐上给这个连接是不可信的错误

有些CA会自动添加带有example.com的www.example.com版本,有些则不会。确保SSL证书对www.example.comexample.com都有效。

可以使用以下命令检查证书:

代码语言:javascript
复制
openssl s_client -connect example.com:443 | openssl x509 -noout -text

你可以看到google有*.google.com和google.com

2. Apache虚拟主机:

根据这个..。

我可以重定向 http://example.comhttps://www.example.com http://www.example.comhttps://www.example.com

...and这个..。

但是https://example.com并没有重定向到https://www.example.com

.我在想,您成功地完成了http的配置,因为这两个

  • http://www.example.com
  • http://example.com

重定向到https://www.example.com

但是,从https://example.com重定向到https://www.example.com必须在htps (:443)虚拟主机配置中指定。这些规则不能由http (:80)虚拟主机配置文件确定。

为了解决这个问题,您必须将这些重写规则添加到ssl.conf文件中:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [L,NE,R=permanent]

所以,可能是这样的:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52016798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档