将App Engine子域重定向到文件夹

时间:2017-09-03 14:16:48

标签: php google-app-engine

我在Google App引擎上托管应用程序并拥有多个静态页面,我希望在自己的子域中提供这些页面。

因此,如果域名为example.com,我希望page.example.com/file提供文件example.com/page/file。如果它是在带有重写的apache服务器上托管的,那么这将是一项简单的任务。

App Engine提供tutorial用于在php中模拟mod_rewrite,但这会重定向到页面上的其他脚本,而不是静态文件,这意味着静态文件不会被视为静态文件。除了读取php脚本中的文件外,还可以重定向到静态资源,但这意味着URL会为用户更改,并且他们会在地址栏中看到example.com/page/file ,我想避免这种情况。

在app.yaml中我可以做简单的重写,但只能在域之后的部分,而不是子域 - >目录替换。

1 个答案:

答案 0 :(得分:0)

请注意,使用string fileToRead = @"D:\Table.DAT"; MemoryStream msAla = new MemoryStream(File.ReadAllBytes(fileToRead)); DFTable dft = new DFTable(msAla, false, tagFile, tname); DataTable dt = dft.ToDataTable(); 仿真意味着您不再将该文件作为静态内容提供服务,您将动态提供该文件,可能会影响您的实例时间。

仍然使用静态服务的一种方法是将您的应用/服务映射为mod_rewriteexample.com,并在page.example.com文件的app.yaml中的2个位置显示您的静态目录部分,像这样:

handlers

但请注意,它也适用于- url: /(<file_pattern_here>)$ static_files: static/\1 upload: static/<file_pattern_here>$ - url: /page/(<file_pattern_here>)$ static_files: static/\1 upload: static/<file_pattern_here>$ 。如果你不喜欢,你可以创建第二个服务,让我们称之为page.example.com/page/file,然后你分开工作:

  • 映射到page的旧服务(default?)通过此处理程序响应example.com个请求:

    example.com/page/file
  • 映射到- url: /page/(<file_pattern_here>)$ static_files: static/\1 upload: static/<file_pattern_here>$ 的新page服务通过此处理程序响应page.example.com个请求:

    page.example.com/file

为了使- url: /(<file_pattern_here>)$ static_files: static/\1 upload: static/<file_pattern_here>$ 目录的内容在两个服务之间保持同步,您应该始终在这两个服务上进行部署,并且只需要根据需要将一个static目标链接到2个服务中,像这样的东西:

static