我在使用 cloudfront 设置 wordpress 时遇到问题。
我已经设置好所有东西,并且它可以正常工作,但问题是,当我发送请求时,地址栏中显示的是原始 URL,而不是 cname。
这是我的原始虚拟主机配置:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName origin.mydomain.com
DocumentRoot /var/www/mysite.mydomain.com
<Directory /var/www/mysite.mydomain.com>
Options -Indexes MultiViews FollowSymlinks
Options Indexes FollowSymLinks MultiViews
#AllowOverride AuthConfig
AllowOverride None
Order allow,deny
allow from all
</Directory>
<IfModule mod_headers.c>
Header unset Server
Header unset X-Pingback
Header unset X-Powered-By
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</IfModule>
ErrorLog ${APACHE_LOG_DIR}/mysite.mydomain.com/error.log
CustomLog ${APACHE_LOG_DIR}/mysite.mydomain.com/access.log combined
</VirtualHost>
在云端,我的分发设置如下:
Domain Name : d7jz390azoodb9.cloudfront.net
Origin : origin.mydomain.net
CNAMEs : mysite.mydomain.com
我进行了 DNS 注册以便:
origin.mydomain.com指着我的服务器的公共 IP 地址
mysite.mydomain.com是以下 cname d7jz390azoodb9.cloudfront.net
以上所有操作均正常。我的问题是,当我在浏览器中输入以下内容时:http//我的网站.我的域名.com,我进入了我的 wordpress 主页,当我尝试导航时,例如点击“登录”(http://mysite.mydomain/wp-login.php),我的页面顶部地址栏中显示的网址是:http://origin.mydomain/wp-login.php相反,任何用户都可以看到。
如果我打字mysite.mydomain/wp-login.php直接在浏览器中,我得到了一个未找到来自 cloudfront。
如果我更换服务器名称在我的 vhost 配置中mysite.mydomain.com我得到一个错过来自 cloudfront。
有人知道如何修复这个问题,以便用户看到的 URL 始终保持不变mysite.mydomain.com?
谢谢
答案1
问题出在 cloudfront 行为设置上。
我做的配置很好,但是我告诉 cloudfront 不要转发 cookie,然后原始服务器没有收到任何 cookie。
我激活了 cloudfront 中的所有 cookie 转发并且它正常工作。
问候。