我有一个旧的 Apache PHP 网站,目前正在升级。在此期间,我需要继续通过 URL“legacy.example.com”访问此网站
我已将 ServerAlias 条目添加到站点的 .conf 文件中。当我访问“https://legacy.example.com”时,系统指向了一个错误的文件夹,加载的是一个完全不同的站点,但仍然是我系统上的站点。但当我访问原始的“https://example.com”时,系统指向了正确的文件夹,站点加载正常。
它托管在 AWS EC2 实例上,域名 example.com 指向弹性 IP,而 legacy.example.com 指向 EC2 实例的配置公共 IP(弹性 iP 将很快移动到新站点,因此此时它将是错误的旧版 IP)
我有以下配置文件(除了添加 ServerAlias 之外,这个配置已经按原样工作了很长时间):
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/path/to/sites/folder/www-root/"
ServerName example.com # This address goes to the correct root folder
ServerAlias legacy.example.com # This address goes to an incorrect folder
ErrorLog /path/to/error/log
CustomLog /path/to/access/log combined
<Directory "/path/to/sites/folder">
Options FollowSymLinks ExecCGI
AllowOverride None
Require all granted
</Directory>
SetEnv APP_ROOT "/path/to/sites/folder"
php_value auto_prepend_file "/path/to/sites/folder/etc/bootstrap.php"
php_value magic_quotes_gpc "0"
php_value error_log "/path/to/sites/folder/log/php.log"
# SSL setup
SSLCertificateFile <stuff>
SSLCertificateKeyFile <stuff>
SSLCertificateChainFile <stuff>
</VirtualHost>
</IfModule>
据我所知,我的 Apache 配置文件中没有冲突:
我的 apachectl -S 输出:(端口 80 legacy.example.com 永久重定向到端口 443)
VirtualHost 配置:
*:443 是 NameVirtualHost
默认服务器 example.com (/etc/apache2/sites-enabled/example-ssl.conf:7)
端口 443 namevhost example.com (/etc/apache2/sites-enabled/example-ssl.conf:7)
别名 legacy.example.com
端口 443 namevhostwww.example.com(/etc/apache2/sites-enabled/www.example.com- ssl.conf:1)
*:80 是 NameVirtualHost
默认服务器 unrelatedsite.com (/etc/apache2/sites-enabled/unrelatedsite.com.conf:7)
端口 80 namevhost unrelatedsite.com (/etc/apache2/sites-enabled/unrelatedsite.com.conf:7)
端口 80 namevhostwww.unrelatedsite.com(/etc/apache2/sites-enabled/unrelatedsite.com.conf:25)
端口 80 namevhost legacy.example.com(/etc/apache2/sites-enabled/legacy.example.conf:6)
端口 80 namevhost example.com(/etc/apache2/sites-enabled/example.conf:6)
端口 80 namevhostwww.example.com(/etc/apache2/sites-enabled/www.example.conf:1)
ServerRoot:“/etc/apache2”
主 DocumentRoot:“/var/www”
主 ErrorLog:“/var/log/apache2/error.log” 互斥 ssl
-stapling:using_defaults
互斥 ssl-cache:using_defaults互斥默认值:dir="/var/lock/apache2" mechanism=fcntl 互斥 mpm-accept:using_defaults 互斥 watchdog-callback:using_defaults 互斥重写映射:using_defaults PidFile:“/var/run/apache2/apache2.pid” 定义:DUMP_VHOSTS 定义:DUMP_RUN_CFG 用户:name="www-data" id=## 组:name="www-data" id=##
为什么在给定相同配置文件的情况下,一个地址可能转到一个文件夹,而另一个地址可能转到另一个文件夹?
编辑:另一个奇怪的现象...当我访问 legacy.example.com 时,我看不到访问日志有任何变化。但是当我访问 example.com 时,我看到了变化。