gpt4 book ai didi

.htaccess - htaccess RewriteEngine 适用于 HTTP 但不适用于 HTTPS

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:46 26 4
gpt4 key购买 nike

我正在尝试将诸如 www.mysite.com/foo/bar 之类的 URL 重定向到 www.mysite.com/foo/index.php?foo=bar .

为此,我在 .htaccess 文件中使用了几行,如下所示:

RewriteEngine On
RewriteRule ^foo/([a-z]+)/?$ foo/index.php?bar=$1 [NC,L]

这对于通过 HTTP 建立的连接非常有用,但我真的需要它也能通过 HTTPS 进行连接。当我访问 https://www.mysite.com/foo/bar 时,我看到的是 404 Not Found 错误页面。

任何有助于通过 HTTPS 实现此功能的帮助(或解释为什么它不能通过 HTTPS 完成)都会很棒。谢谢。

编辑:在阅读了一些评论后,这里有一些更新。

  • 我确实有网站的 SSL 证书,并且 HTTPS 在网站的其他地方工作正常
  • 站点的 HTTPS 和 HTTP 版本的文档根目录相同。我使用 echo $_SERVER['DOCUMENT_ROOT']; 检查了这一点 - 两者都返回相同的东西。
  • 我确实注意到(当我删除自定义 404 页面时)显示的错误是:在此服务器上找不到请求的 URL document_root/public_html/foo/index.php。我知道不知道为什么会出现这种情况,如果我直接访问该文件,我可以很好地使用它。

希望这些额外的信息能有所帮助。

最佳答案

在搜索解决方案并查看 .htaccess 文件示例后,我找到了解决方案。我需要将以下行添加到我的 .htaccess 文件中:

RewriteBase /

我仍然不确定为什么没有这一行,它可以使用 HTTP 而不是 HTTPS,但是添加这一行后一切都运行良好。

我不是这方面的专家,但我在此处(第 4 行)找到了关于 RewriteBase 功能的很好解释:http://randomtype.ca/blog/the-wordpress-htaccess-file-explained/

关于.htaccess - htaccess RewriteEngine 适用于 HTTP 但不适用于 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20028851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com