Google cloud platform Google负载平衡器映射url包含'#';
我有一个网站配置使用GCP负载平衡器和GCP存储作为后端服务 现在的情况是:Google cloud platform Google负载平衡器映射url包含'#';,google-cloud-platform,google-cloud-storage,google-cloud-load-balancer,Google Cloud Platform,Google Cloud Storage,Google Cloud Load Balancer,我有一个网站配置使用GCP负载平衡器和GCP存储作为后端服务 现在的情况是: https://example.com/#/ --> works https://example.com/#/path --> works 我想要的是: 但在后端,它应该命中/#/path 我尝试过使用主机和路径规则进行GCP路径映射,但symbol#导致了问题。它在浏览器中将#转换为%23,并显示未找到键 有什么想法吗?在URL/URI中,符号散列(#)有一个特殊的含义,它是一个保留字符,用作一般分隔
https://example.com/#/ --> works
https://example.com/#/path --> works
我想要的是:
但在后端,它应该命中/#/path
我尝试过使用主机和路径规则进行GCP路径映射,但symbol#
导致了问题。它在浏览器中将#
转换为%23
,并显示未找到键
有什么想法吗?在URL/URI中,符号散列(#)有一个特殊的含义,它是一个保留字符,用作一般分隔符,就像正斜杠(/)或at(@)一样。
实际上,散列符号被解释为URL中的锚点,因此它应该指向文档中的锚点部分。例如:
http://example.com/your_page.html#my_document
它将直接在your_page.html
中的my_文档
锚点链接URL
因此,如果您使用的哈希字符与此不同,出于安全原因,URL映射将被编码。正如RFC1738中所述:字符“#”是不安全的,应始终进行编码,因为它在万维网和其他系统中用于根据可能跟随它的片段/锚标识符来界定URL
因此,浏览器机制正在对URL字符串进行编码。
这里有更多信息
尽管可以使用哈希符号设置URL映射,但不建议这样做。因此,我恳请您不要在URL映射中使用哈希符号
正如您所提到的,它工作的原因很简单,因为哈希符号“#”在未编码时被web应用程序忽略。
因此它可以像/#/path
或/#/#/path
那样工作。但实际上,它只是解释URL/URI中的/path,符号散列(#)有一个特殊的含义,它是一个用作通用分隔符的保留字符,就像正斜杠(/)或at(@)一样。
实际上,散列符号被解释为URL中的锚点,因此它应该指向文档中的锚点部分。例如:
http://example.com/your_page.html#my_document
它将直接在your_page.html
中的my_文档
锚点链接URL
因此,如果您使用的哈希字符与此不同,出于安全原因,URL映射将被编码。正如RFC1738中所述:字符“#”是不安全的,应始终进行编码,因为它在万维网和其他系统中用于根据可能跟随它的片段/锚标识符来界定URL
因此,浏览器机制正在对URL字符串进行编码。
这里有更多信息
尽管可以使用哈希符号设置URL映射,但不建议这样做。因此,我恳请您不要在URL映射中使用哈希符号
正如您所提到的,它工作的原因很简单,因为哈希符号“#”在未编码时被web应用程序忽略。
因此它可以像/#/path
或/#/#/path
那样工作。但事实上,它只是在解释路径