我在 CloudFront 后面的 S3 上有一个现有的静态 Web 应用程序,假设在example.com
我想添加一个 WordPress 博客,可以通过以下方式访问example.com/blog
对于 WordPress 博客,我已经使用 Apache 和 WordPress 设置了一个 ec2 服务器。
我已经在 CloudFront 中将 ec2 服务器添加为原点,如描述所述这里。
当我跑步时:
curl example.com/blog
我越来越:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://ec2-x-x-x-x.us-west-1.compute.amazonaws.com/blog/">here</a>.</p>
<hr>
<address>Apache/2.4.18 (Ubuntu) Server at http://ec2-x-x-x-x.us-west-1.compute.amazonaws.com Port 80</address>
</body></html>
因此,我认为我的问题不在于 CloudFront,而在于 Apache 服务器的配置。
我的问题是:如何配置 Apache 以以这种方式工作?
意思是子目录
答案1
当 Apache 知道它会告诉浏览器 301 永久移动时,它会使用您在级别或全局级别ServerName
指定的。<VirtualHost>
如果您未设置,ServerName
它会尝试通过启发式方法(对其中一个 IP 地址进行反向 DNS 查询)找出 FQDN,而您会得到一个典型的令人遗憾的结果。
例子:
ServerName example.com
ServerName http://example.com
ServerName https://example.com:8443