新版本的谷歌应用程序引擎产生404错误(PHP 5.5)


New version of google app engine produces 404 error (PHP 5.5)

我有一个在运行时环境php 5.5上通过谷歌应用程序引擎运行的网站。我正在尝试部署新版本的应用程序(我通过更改app.yaml中的版本号来实现这一点,此处参考:使用app.yaml进行配置)并部署该应用程序。

我当前的网站可以通过www.My-app-name.appspot.com访问(运行良好),我应该可以在www.2-dot-My-pp-name.appspot.com上查看我的新应用程序版本,但我在尝试查看版本2时遇到404错误。

我的应用程序的版本1和版本2是相同的,唯一的区别是版本2有"2"作为app.yaml中的版本。我错过了一步吗?对于查看版本2的配置,我需要做些什么吗?(注意:我不想让版本2上线,我只想在上线之前部署并测试它,看看一些更改是否有效)。

编辑:我试着测试将所有流量路由到我的应用程序版本2会做什么。在这种情况下,应用程序的版本2有效,但版本1无效。看起来,当所有流量都路由到某个特定版本时,该版本将使用url"myappname.appspot.com"提供服务。任何其他版本都使用url"version dot-myappname.appspot.com"。有人知道我如何配置我的应用程序以使这些url工作吗?

根据通过URL的路由文档,新应用程序版本的地址应该是2-dot-my-app-name.appspot.com,没有前导www.:

https://version-dot-app-id.appspot.com
http://version.app-id.my-custom-domain.com
    Sends the request to an available instance of the given version of the default module.

我发现了罪魁祸首是什么。我有一个PHP配置文件,它将头的位置更改为'http://www.'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']。尽管这种类型的配置适用于您的默认应用程序,但在测试新版本时它将不起作用,因为在测试新版时,路由不能包含前导"www"。希望这能帮助其他遇到同样问题的人。

注意:如果使用流量拆分,只要您的自定义域映射正确,用户访问新版本就不会有任何问题。