【发布时间】:2021-05-05 20:29:02
【问题描述】:
我有一个谜:对于我的博客,
- 不以斜杠结尾的 HTTP URL(例如
http://yal.cc/about)重定向到 HTTPS 主页 (https://yal.cc),而不是 HTTPS 版本的 URL。 -
确实以斜杠结尾的 HTTP URL(例如
/about/)正确重定向。 - 对应于实际服务器目录(例如
/game-tools)的 HTTP URL 也可以正确重定向。 - 子域(例如
http://ru.yal.cc/about)上的 HTTP URL 也可以正确重定向。
(子域是使用相同主题/插件/.htaccess的不同目录中的单独 WordPress 安装)
我的.htaccess 没什么异常:
# BEGIN rlrssslReallySimpleSSL rsssl_version[4.0.7]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
# END rlrssslReallySimpleSSL
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
我尝试过没有成功的事情:
- 禁用所有插件
- 从
.htaccess中删除ReallySimpleSSL 的重定向 - 将主题切换到 TwentyTwentyOne
- 添加this little hack
- 验证“基本 URL”是否使用 HTTPS(确实如此)
- 将永久链接格式更改为
/%postname%而不是/%postname%/ - 比较 Plesk 中两个网站的配置(似乎没有什么不同;“从 HTTP 到 HTTPS 的永久 SEO 安全 301 重定向”未启用)
我应该从哪里开始调试呢?这证明了轻微的不便,因为到我网站的大多数 2019 年之前的链接都是 http 没有尾部斜杠,这意味着它们现在被破坏,没有任何方式向用户表明他们的搜索主题仍然存在 - 一个斜杠。
【问题讨论】:
-
301 重定向可以被浏览器真正积极地缓存 - 所以你确定,你说你测试的所有这些不同的东西,你排除了这种可能性吗? (清除浏览器历史记录,或在私人标签/窗口中测试。)
-
啊,确实,这解释了很多 - 现在在隐身模式下进行测试,问题不再发生,所以我在解决这个问题时所做的一些事情一定会有所帮助。目前这仍是一个谜