摆脱App Engine中我的应用程序域中的“ appspot” [重复]

问题描述 投票:-1回答:1

我用谷歌搜索,读了很多天。而且我仍然找不到正确的答案,所以我要问。

我有一个自定义域,并添加了它以通过App Engine部署我的应用。当我这样做时,App Engine还会创建同一应用程序的其他网址,例如:

我的域名是example.com,在部署时,我有四个与我的网站相同的网站:

重要提示:我的ProjectID与我购买的域的名称相同

  • example.com(和www.example.com)
  • example.appspot.com
  • staging.example.appspot.com
  • us.artifacts.example.appspot.com

所以,我怎么能杀死所有这些不必要的URL,而只留在www.example.com和example.com上?

((我当时正在考虑使用Express.js来处理此问题,但我首先想知道是否有更好的最终解决方案。我也尝试过使用它配置dispatch.yaml文件,但似乎不起作用,并带有一个发送301的.htaccess文件,但App Engine无法识别它,因为它不是Apache服务器。]

已复制,请检查Get rid of "appspot" in the domain of my app in App Engine

node.js google-app-engine google-cloud-platform dns
1个回答
4
投票

无法从App Engine上的任何应用程序中删除appspot.com域。

如果您真的想“摆脱它们”,或者根本无法访问它们,则可以从应用程序上的传入请求中读取Host标头,然后检查该请求是否是发给appspot.com或您的自定义域(这是在您的应用程序级别完成的,大多数框架应允许您这样做)。

然后,您可以重定向请求,或仅返回错误响应,或完全不执行任何操作。

例如,使用flask,您可以执行以下操作:

from flask import Flask, request, redirect

app = Flask(__name__)

@app.route('/')
def read_host():
    host = request.host
    if "appspot.com" in host:
        return redirect('https://[CUSTOM-DOMAIN].com', code=301)

    # else, keep running the application normally, it means that the request
    # was made to the Custom Domain

if __name__=='__main__':
    app.run('127.0.0.1', port=8080, debug=True)

请问您为什么对此感兴趣?据我所知,当appspot域与自定义域共存时,应该不会有任何冲突或问题,并且也不会因为拥有这些appspot域名而向您收费。

© www.soinside.com 2019 - 2024. All rights reserved.