重写规则以“找不到页面”结束在 https 页面上

发布于 2025-01-05 21:04:42 字数 350 浏览 0 评论 0原文

我的网站上有多个重写规则,如下所示,

 ^product/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)$ /index.php?action=product&category=$1&type=$2

我还安装了自签名 ssl 证书,并且 php 重定向到 https 的页面很少。当我在这样的 https 页面上并单击与上述重写规则匹配的链接时,我最终会出现“未找到”错误页面

如何告诉 apache 所有重写规则都应该相对于 http 而不是 https 进行读取?

编辑: 我通过在 :443 Virtual Host 下添加重写规则的副本来解决这个问题

I have multiple rewriting rules like the one below on my site

 ^product/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)$ /index.php?action=product&category=$1&type=$2

I also have self-signed ssl certificate installed and few pages on which php redirects to https. When I'm on such https page and click a link that matches above rewriting rules, I end up on 'Not Found' error page

How to tell apache that all rewriting rules should be read relatively to http, not https?

EDIT:
I sorted it out by adding copy of rewriting rules under :443 Virtual Host

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

转瞬即逝 2025-01-12 21:04:42

假设您的 Apache 在标准端口上提供 HTTPS,您可以在规则之前添加一个条件:

RewriteCond %{SERVER_PORT} =443
RewriteRule ...

编辑: 还有另一个变量,您可以检查(它位于 文档,也是):

HTTPS

如果连接使用 SSL/TLS,则包含文本“on”,否则包含“off”文本。 (无论是否加载mod_ssl,该变量都可以安全使用)。

因此,无论在哪个端口上提供 SSL,这都应该更好:

RewriteCond %{HTTPS} =off
RewriteRule ...

Assuming your Apache serves HTTPS on the standard port, you could add a conditional before the rule:

RewriteCond %{SERVER_PORT} =443
RewriteRule ...

EDIT: There's another variable, you could check (and it's in the documentation, too):

HTTPS

Will contain the text "on" if the connection is using SSL/TLS, or "off" otherwise. (This variable can be safely used regardless of whether or not mod_ssl is loaded).

So this should be better, regardless on which port SSL is delivered:

RewriteCond %{HTTPS} =off
RewriteRule ...
一身骄傲 2025-01-12 21:04:42

您可以尝试:

RewriteCond %{HTTPS} on

查看 htaccess HTTPS / SSL 提示、技巧和黑客

You can try:

RewriteCond %{HTTPS} on

Have a look at htaccess HTTPS / SSL Tips, Tricks, and Hacks

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文