我在abc.com
运行我的网络应用程序,使用apache作为网络服务器。
我在SquareSpace上托管了一些静态页面...例如。 abc.squarespace.com/landing
我想配置apache来提供来自abc.squarespace.com
的内容,当它收到abc.com/landing
我已经在nginx中使用proxy_pass将后端作为abc.squarespace.com
用于位置/landing
。但我不确定如何在Apache中这样做。也没有运气在网上进行研究。
提前致谢。
答案 0 :(得分:2)
邮件正文无法包含abc.com
的网址,因此我将使用example.com
和example.squarespace.com
。
我相信你正在寻找帧转发。要实现它,请使用以下步骤:
example.squarespace.com
允许从example.com
转发帧: X-Frame-Options: ALLOW-FROM https://example.com/
有关详细说明,请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
example.com
已启用Apache mod_proxy_http: # apachectl -M | grep proxy_http
proxy_http_module (shared)
.htaccess
文件中设置以下重写规则以提供来自http://example.squarespace.com/landing
的内容 <IfModule proxy_http_module>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^landing(.*) http://example.squarespace.com/landing [P]
</IfModule>
此处的语法与Apache mod_rewrite的语法相同。
答案 1 :(得分:1)
不确定是要求重定向到abc.squarespace.com还是内部代理调用,这里是两者的解决方案
重定向:浏览器会点击abc.com/landing并获得301重定向,将网址更改更改为abc.squarespace.com/landing
将规则添加到httd.conf或包含vhost文件:
RewriteEngine on
RewriteRule "^/landing/(.+)" "http://abc.squarespace.com/landing/$1" [R,L]
代理: abc.com下的abc.squarespace.com&gt;浏览器不会认为该页面是从任何下游域提供的。
选项1:使用带P(代理)开关的重写规则
RewriteEngine on
RewriteRule "^/landing/(.+)" "http://abc.squarespace.com/landing/$1" [P]
选项2:使用proxypass
ProxyPass "/landing" "http://abc.squarespace.com/landing"
ProxyPassReverse "/landing" "http://abc.squarespace.com/landing"
此外,如果需要,可以指定超时,如果需要通过任何Internet代理进行路由,也可以配置ProxyRemote
良好参考资料