我有两个网站,将它们称为example-1.com和example-2.com部署在同一服务器(CentOS 7.5)上,这两个服务器都由apache在端口80提供服务。重定向是通过虚拟主机执行的(完整配置请参见下文) 。
对于这两个站点,我都(永久)将非http URL重定向到https(证书没有问题,机器人可以正常工作)。
我遇到的问题是第二个网站的http版本重定向(永久移动301)到第一个网站的https(网站的顺序根据下面的.conf文件)。
这种重定向不会在第二个网站重定向到第一个网站时发生(请参阅下面的confs),如果不需要从http重定向到https,即我以https://www.example-开头,一切都可以正常进行。2.com。
这是.conf文件,任何有关如何解决此问题的想法将不胜感激。
Listen 80
<VirtualHost *:80>
ServerName example-1.com
Redirect permanent / https://www.example-1.com/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/var/www/html/example-1"
ServerName www.example-1.com
ServerAlias example-1.com
## logging
ErrorLog "/var/log/httpd/example-1-error_log"
CustomLog "/var/log/httpd/example-1-access_log" combined
<Directory "/var/www/html/example-1">
DirectoryIndex index.html index.php
Options FollowSymLinks
AllowOverride All
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example-1.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example-1.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example-1.com/chain.pem
</VirtualHost>
</IfModule>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/plain text/xml application/javascript
</IfModule>
和第二个网站的conf(注意,除了名称之外,唯一的区别是在第二个网站中,顶部没有Listen 80)
<VirtualHost *:80>
ServerName example-2.com
Redirect permanent / https://www.example-2.com/
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/var/www/html/example-2"
ServerName www.example-2.com
ServerAlias example-2.com
## logging
ErrorLog "/var/log/httpd/example-2-home-error_log"
CustomLog "/var/log/httpd/example-2-home-access_log" combined
<Directory "/var/www/html/example-2">
DirectoryIndex index.html index.php
Options FollowSymLinks
AllowOverride All
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/example-2.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example-2.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example-2.com/chain.pem
</VirtualHost>
</IfModule>
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/x-component text/html text/plain text/xml application/javascript
</IfModule>
我想我终于找到了配置中的问题。我将其发布在这里,以防万一有人遇到类似问题。
我将服务器名称更改为www等效项,并添加了不带www的服务器别名,即指令现在变为
<VirtualHost *:80>
ServerName www.example-1.com
ServerAlias example-1.com
Redirect permanent / https://www.example-1.com/
</VirtualHost>
对第二个网站进行了相同的调整。这为我解决了不正确的重定向问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句