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