Redirect GCP-静态宿主-重定向到/index.html

Redirect GCP-静态宿主-重定向到/index.html,redirect,google-cloud-platform,google-cloud-storage,Redirect,Google Cloud Platform,Google Cloud Storage,我正在尝试使用GCP和谷歌云存储为静态网站提供服务。我已经完成了这里规定的一切 假设我有以下文件结构: - index.html - folder - index.html - another.html 我进入www.example.com/folder 它重定向到www.example.com/folder/index.html=>index.html是不需要的 但是,如果我输入www.example.com/folder/,它不会重定向并以透明的方式正确地提供index.h

我正在尝试使用GCP和谷歌云存储为静态网站提供服务。我已经完成了这里规定的一切

假设我有以下文件结构:

- index.html
- folder
    - index.html
    - another.html
我进入
www.example.com/folder

它重定向到
www.example.com/folder/index.html
=>index.html是不需要的

但是,如果我输入
www.example.com/folder/
,它不会重定向并以透明的方式正确地提供index.html页面

如何防止第一种行为?还是自动添加尾部斜杠


谢谢

您应该能够相应地将设置为index.html。有关详细信息,请查看中提供的其他注释。参考示例可在同一文档中找到

语法:

gsutil web set [-m main_page_suffix] bucket_url
根据该行为的意图。至于是否可取,这是一个更大的问题

例如,假设您将静态网站的MainPageSuffix设置为 index.html。另外,假设您的数据库中没有名为directory的文件 bucket www.example.com。在这种情况下,如果用户请求URL ,云存储尝试为 文件www.example.com/directory/index.html。如果该文件也没有 存在时,云存储返回一个错误页面

MainPageSuffix还控制用户请求时提供的文件 顶级站点。继续上面的示例,如果用户请求 ,云存储尝试为该文件提供服务 www.example.com/index.html


不幸的是,我不知道自动添加尾部斜杠的方法。也许你可以在index.html中添加一条消息到“你想去而不是去”的曲调中,但这是一个麻烦的解决办法。

可能比使用bucket更容易,因为可以在那里定义。

如果你遵循上面的教程,那么你必须有一个app.yaml文件来描述你的路由规则。以下是一个答案:

看看这个

main_page_后缀适用于bucket的每个子目录。例如,在将main_page_后缀配置为index.html的情况下,GET请求将检索,GET请求将检索


你找到解决办法了吗?引用设置MainPageSuffix的答案并不能解决问题。也要面对这个问题。这很烦人。正在考虑使用一个小的javascript代码片段将
../index.html
打成
../
你必须在app.yaml中描述路由规则。你的app.yaml看起来怎么样?@V.Tran他们描述的是谷歌云存储静态网站托管-它与app engine无关。对于遇到此问题的任何人,你可能想遵循我确实阅读过的文档,但它应该在后台提供
index.html
,而不是实际执行301重定向。它适用于根目录
www.example.com
不会附加
index.html
,但是一旦你转到一个子目录,就会添加
index.html
(通过重定向),尽管这并不能真正回答问题,但它确实提供了一个非常有趣的替代方法。因此,它可能不应该被标记为答案,但您将得到赏金:)@PierreDuc,它可能无法将
index.html
设置为bucket的实际“目录索引”,就像apache2将其作为指令一样。每个这样的目录一个bucket可能是唯一的选择…它实际上读取“主页”(
MainPageSuffix
)而不是“目录索引”。谢谢大家的提醒!不过,似乎有很多有趣的重定向选项,奇怪的是我以前从未注意到firebase托管:)