设想:
我的网站解析为 Aws ELB,监听器为 443
后端目标组是一个在端口 8080 上运行 apache 的 EC2 实例
问题:
如果我错过了尾随斜杠,网站就无法解析,而当我加上尾随斜杠 (/) 时,一切都正常。
www.example.com/foldername<-- 不起作用,返回 urlwww.example.com:8080/文件夹名称/并且解析失败
www.example.com/文件夹名称/<-- 工作正常
为了检查后端是否一切正常,我在端口 8080 上查询了 EC2 实例 IP,带/不带
http://ec2_ip:8080/foldername 和 http://ec2_ip:8080/foldername/
两个 URL 和实例 IP 均按预期运行
我猜 ELB 和 EC2 实例之间出了问题
Vhost 配置:
Listen 8080
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
Alias "/robots.txt" "/var/www/html/robots.txt"
DocumentRoot /var/www/html/rootfolder
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/rootfolder>
Options -Indexes
</Directory>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/script/(.*).js$ [NC]
RewriteRule .* /script/some.php?file=%1.js [L]
RewriteCond %{REQUEST_URI}?%{QUERY_STRING} ^/js/subscribe\?hash=(.*)
RewriteRule ^(.*)$ /script-v2/some.php?file=sub&hash=%1 [L]
RewriteCond %{REQUEST_URI}?%{QUERY_STRING} ^/js/worker\?hash=(.*)
RewriteRule ^(.*)$ /script-v2/some.php?file=sw&hash=%1 [L]
</VirtualHost>
以前有人遇到过类似的问题吗?