为什么我的网站 URL 末尾有双斜杠,如下所示://

2024-04-13

当我输入我的网站 zeugmarket.com 时,它显示为https://zeugmarket.com// https://zeugmarket.com//

我编写了这个 htaccess 文件以从 HTTP 转移到 https,但它还在末尾添加了两个斜杠。 我该如何阻止它:

RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://www.zeugmarket.com%{REQUEST_URI} [L,R=301]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://www.zeugmarket.com%{REQUEST_URI} [L,R=301]

似乎有“其他东西”添加了额外的斜杠 - 由于这些指令,它没有发生。

在我的网站网址末尾,如下所示://

双斜杠实际上位于startURL 路径的末尾,不严格位于末尾。例如。如果您要求http://example.com/foo然后它返回https://example.com//foo.

然而,这个重定向响应实际上来自 Nginx 服务器,而不是 Apache。 Nginx 可能被用作前端(反向)代理 - 因此需要使用ENV:HTTPS(环境变量)而不是HTTPS(服务器变量)中RewriteCond指示。

我会寻找 Nginx 代理的配置问题,因为很可能是这个添加了额外的斜杠。

RewriteRule ^(.*)$ https://www.zeugmarket.com%{$1} [L,R=301]

顺便说一句,在这个例子中(来自你的评论)%{$1}不是严格有效的,并且总是会导致空字符串 - 所以双斜杠绝对不是来自 Apache。

但是,您似乎有一个单页网站。您的任何 URL 上都没有任何 URL 路径?只有一个可见的 URL,那就是https://www.example.com/,因此您的指令可以简化:

RewriteCond %{ENV:HTTPS} !on
RewriteRule ^ https://www.example.com/ [L,R=301]

请注意,主机名后面应该有一个斜杠(在 URL 路径的开头)。如果你省略它,那么(通常)browser将在重定向中附加斜杠request。 (但 Nginx 似乎实际上在重定向中附加了这些斜杠response- 在到达浏览器之前。)

有关浏览器和主机名后的尾部斜杠的更多信息,请参阅网站管理员堆栈上的以下问题:

https://webmasters.stackexchange.com/questions/35643/is-trailing-slash-automagically-added-on-click-of-home-page-url-in-browser https://webmasters.stackexchange.com/questions/35643/is-trailing-slash-automagically-added-on-click-of-home-page-url-in-browser

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的网站 URL 末尾有双斜杠,如下所示:// 的相关文章

随机推荐