Wordpress 与 cloudfront 结合使用,如何屏蔽原始 URL

Wordpress 与 cloudfront 结合使用,如何屏蔽原始 URL

我在使用 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 转发并且它正常工作。

问候。

相关内容