【问题标题】:apache redirects automatically to https when virtualhost is configured on port 80在端口 80 上配置虚拟主机时,apache 会自动重定向到 https
【发布时间】:2018-04-11 16:50:13
【问题描述】:

我有一台安装了 SSL 证书的 apache 服务器,我在 httpd.conf 中设置了这些虚拟主机

<VirtualHost *:80>
  ServerName  subdomanin.DOMAIN_A.com
  DocumentRoot "/var/www/html/XXXXXXXXXXXXXXXXXXXXXXXX"
</VirtualHost>

<VirtualHost *:443>
  ServerName  DOMAIN_A.com
  DocumentRoot "/var/www/html/XXXXXXXXXXXXXXXXXXXXXXXX"
   SSLEngine on
   SSLCertificateKeyFile XXXXXXXXXXXXXXXXXXXXXXXX
   SSLCertificateFile XXXXXXXXXXXXXXXXXXXXXXXX
   SSLCertificateChainFile XXXXXXXXXXXXXXXXXXXXXXXX 
</VirtualHost>

每次我尝试使用浏览器访问http://subdomain.DOMAIN_A.com 时,它都会将我重定向到端口 443,地址前带有 https。证书不适用于子域,我收到错误消息。

我不明白如何默认访问80端口上的子域,而不是在443端口上重定向。

【问题讨论】:

  • 在此配置中描述的重定向没有理由。所以可能原因在其他地方,很可能在某些应用程序逻辑或某些动态配置文件中。
  • 在那个子域中只有一个 index.php 文件,没有一些动态配置。
  • 动态配置文件被隐藏,通常...
  • 有一个空文件夹。仅此而已
  • 你知道什么是动态配置文件以及如何检查是否有隐藏文件吗?不是想惹恼你,但你并没有真正直接回答......

标签: apache http https ssl-certificate virtualhost


【解决方案1】:

请确认SSL.conf中是否有subdominin.DOMAIN_A.com的虚拟主机条目
如果有则必须删除它并重新启动服务

【讨论】:

  • 具体需要查看虚拟主机80中的rewrite entry
【解决方案2】:

您可以测试以下内容:

1- 尝试设置不同的documentRoot

2-重启apache2

3- 清除浏览缓存

4-查看apache日志文件是否有错误

【讨论】:

  • 最后一件事是检查您的 dns 配置,确保 subdominin.DOMAIN_A.com 和 DOMAIN_A.com 具有相同的 A 记录(服务器 ip),我注意到您将 sudomanin....你的 dns 配置你有子域。??
  • 是的,他们有相同的 ip
  • 子域和子域不同,也许你在 DNS 配置中设置了子域,而在虚拟主机中设置了子域?
  • 我尝试使用另一个域,它适用于 http 。如果我把 domainA 重新启动 https...
  • 我认为您应该清除系统中的 dns 缓存,如果您使用的是 windows,请以管理员身份运行命令提示符,然后运行以下命令:ipconfig /flushdns
猜你喜欢
  • 1970-01-01
  • 2016-07-16
  • 2016-05-24
  • 2016-06-06
  • 2021-08-30
  • 2012-05-11
  • 2015-02-01
  • 2018-12-06
  • 1970-01-01
相关资源
最近更新 更多