在不更改 URL 的情况下重定向到另一个网站

Posted

技术标签:

【中文标题】在不更改 URL 的情况下重定向到另一个网站【英文标题】:Redirect to another website without changing the URL 【发布时间】:2018-07-30 13:02:18 【问题描述】:

我们有一个在 Elastic Loadbalancer 后面运行的 AWS beanstalk WordPress 应用程序,并且希望 WP 网站从具有云端的 S3 网站之一打开一个页面,而无需更改地址栏中的 URL。例如 wpbeanstalk.com/xyz 应该打开 s3website.com/a1/page.html。我曾尝试在 Htaccess 中使用 RewriteRule 执行此操作,但 URL 更改为 301,我现在使用 Iframe 在 WP 应用程序上加载 S3website 页面,但这不是一个可行的解决方案。任何人都可以建议实现这一目标的最佳实践吗?

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase / 
  RewriteRule ^index\.php$ - [L] 

  RewriteCond %REQUEST_FILENAME !-f 
  RewriteCond %REQUEST_FILENAME !-d 
  RewriteRule . /index.php [L] 

  RewriteCond %REQUEST_URI .ride/$ 
  RewriteRule (.*) awsS3.Website.com/f1/index.html [R=301,L] 
</IfModule>

【问题讨论】:

请出示您的 RewriteRules。 @DusanBajic # BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %REQUEST_FILENAME !-f RewriteCond %REQUEST_FILENAME !-d重写规则。 /index.php [L] RewriteCond %REQUEST_URI .ride/$ RewriteRule (.*) awsS3.Website.com/f1/index.html [R=301,L] 如果您将[R=301,L] 更改为[P,L] 会发生什么? @DusanBajic 我能够使用[P,L] 进行重定向,但是 S3 存储桶网站有一个带有 SSL 证书的 cloundfront,当我点击所需的 URL 时,浏览器会尝试访问 S3 网站但它因 Cloudfront 错误请求而失败。 Cloudfront 设置为 S3 网站 Endpoint 的自定义来源。我想知道如何通过这个 - 请告知您对此的想法。谢谢! 【参考方案1】:

您可以将 CloudFront 放在您的 Wordpress 站点和 S3 存储桶的前面,然后配置一个 Lamdba@edge 函数以使用正确的 S3 文件修改源响应。

【讨论】:

这可以为网站/域而不是 s3 文件完成吗?

以上是关于在不更改 URL 的情况下重定向到另一个网站的主要内容,如果未能解决你的问题,请参考以下文章

在不丢失原始数据的情况下重定向回上一页

我们如何在不丢失数据的情况下重定向到相同的视图

如何在不使用 React Native 中的堆栈导航器的情况下重定向到页面?

如何在不重新加载 HTML 页面的情况下重定向锚标记链接?

如何在没有 mod_rewrite 的情况下重定向除一个路径及其所有子路径之外的所有 URL?

如何使用新的 auth0-spa.js 在不单击登录按钮的情况下重定向到 auth0?