我正在运行一个基于 CMS 的网站。在 CMS 后端中,可以选择通过 https 提供网站服务。然后这会更新一个 config.php 文件。这可能与以下问题有关,也可能无关。
我最近在 Stack Overflow 上发布了一些关于如何重定向到规范名称的问题。由于我使用的是 SSL,因此同一地址有 4 个变体:
选择的规范名称是第一个变体 - 非 www。HTTPS。
Stack Overflow 上的一些成员为我提供了一段代码。但是,这会导致错误“重定向循环”。这是生成此重定向循环的代码:
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^.*$ https://example.com/$0 [R,L]
我摆弄了这个片段。我真的不知道我在做什么,所以很惊讶地报告它似乎正在工作。我将上面第二行的结尾更改为“on”。
现在,以下传入的 URL 会重定向:
www.example.com = https://example.com/(好)
example.com => example.com 但是当您导航到任何其他页面时会出现所需的https://example.com/somepage(有点好)
https://www.example.com => https://example.com(好)
https://example.com => https://example.com(好)
所以2个问题:
1)为什么我的代码有效?!它应该工作吗?我谨慎乐观但持怀疑态度,因为我真的不知道自己在做什么。
2)example.com 上面的第二个变体在登陆时不会重定向,而是在导航到站点中的任何其他位置时进行。有没有办法设置 htaccess 文件代码,以便访问 example.com 的人被重定向到https://example.com?