我想请求您帮助如何在 AWS 上为Cakephp Web 应用程序正确设置路由。我让 Cakephp 在 AWS Elastic Beanstalk 上运行,使用 PHP 配置,然后我为我的域(例如foo.com
)设置了一条 A 记录,该记录链接到 Cloudfront CDN,该 CDN 链接到 Beanstalk 的默认 ELB。一切正常,直到我发现 Cakephp 处理的所有重定向都将重定向到 ELB ( elb-abc123.elb.amazonaws.com/page/
) 的默认公共 DNS 而不是foo.com/page/
. 我知道 elb 有一个叫做 CName 的东西,但我无法让它工作(http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/using-domain-names-with-elb.html?)。而且我不确定这是否与.htaccess 有关。
这是我的域的路由 53 设置:
foo.com. A ALIAS examplecode.cloudfront.net (examplecode...)
www.foo.com. A ALIAS examplecode.cloudfront.net (examplecode...)
和可能前设置:
Alternative Domain Names (CName): foo.com, www.foo.com
好的,这是我所面临的一个示例:
架构:客户端->cloudfront->elb(beanstalk)->EC2
1. 当客户端类型foo.com
或www.foo.com
在他/她的浏览器中时一切正常。
2. 当客户端尝试请求安全页面foo.com/account/index
(例如帐户页面)时,Cakephp 会要求登录,因此重定向由 cakephp 控制器处理:$this->redirect(array('controller' => 'secure', 'action' => 'login'));
。
3. 预期的登陆 url 应该是foo.com/secure/login/
bur 结果是elb-abc123.elb.amazonaws.com/secure/login
.
谁能帮帮我,谢谢。