【问题标题】:Connect domain to a page on another website将域连接到另一个网站上的页面
【发布时间】:2019-11-18 22:50:13
【问题描述】:

我们已经建立了一个在线平台,允许企业注册并展示他们的服务,并在该平台上开设商店。
目前,企业资料的网址类似于:

example.com/businesses/132/some-company

...还有商店:

example.com/businesses/132/some-company/shop

现在,为了使业务资料对公司更具吸引力,我想知道是否可以将域连接到我们平台上的该页面,以便 url 可以简单地为:

some-company.com

...理想情况下带有子路径:

some-company.com/shop

...指向上面的 url。
我不想重定向,因为这会从浏览器的 url 栏中删除自定义域。

作为前端开发人员,我想这就像有一个全屏 iframe 指向自定义域上的业务配置文件 URL。但这种方法需要在我们的平台上针对每个业务进行开发,如果有更好的解决方案,这可能不是必需的。

有什么办法吗?

【问题讨论】:

    标签: dns


    【解决方案1】:

    您可以使用像 NGINX 这样的反向代理引擎来干净利落地完成这项工作。

    下面是 some-company.conf 的粗略示例:

    server {
        listen 80;
        server_name www.some-company.com some-company.com;
    
        location /shop/ {
            proxy_pass http://www.example.com/businesses/132/some-company/shop/;
    
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header Host $host;        
        }
    }
    

    SSL 和其他重写选项需要额外的设置,但这应该会让你朝着那个方向前进。

    【讨论】:

    • 所以我必须尝试一下。我能够将some-company.com 连接到example.com。但是,它是一个 SPA (react.js),总是将我重定向到 /,而不是 /businesses/132/some-company/shop/...知道为什么或我需要更改什么吗?
    • 你可以使用 "location / {" 而不是 "location /shop/ {" 这样 nginx 就可以指向所有与 "/" 相关的内容,而不是包括 "/","/shop/","/商店/结帐/”、“/support/”等。如果您需要对特定的子路径做一些不同的事情,您也可以创建多个“位置”指令。
    • 嗯,是的,我想我试过了,但它总是把我带回/。执行some-company.com/shop 显示404,因为没有example.com/shop,只嵌套在/businesses/132/some-company/shop/ 路径中...
    • 尝试一个额外的“location = / {”让它拾取斜杠和非斜杠子路径(注意等号)。您仍然需要“location / {”来获取仅匹配的域。
    • 另一种常见的技术是让指令不带斜杠“/shop”,并在服务器指令附近进行重写以删除任何尾随斜杠,因为它来自“rewrite ^/(.* )/$ /$1 永久;":
    猜你喜欢
    • 2020-08-15
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多