.htaccess RewriteRule :始终将 http 重定向到 https (工作正常),但仍需要 1 个排除...

发布于 2024-12-27 17:48:29 字数 567 浏览 1 评论 0原文

看起来

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

效果很完美,并将所有 http 请求重定向到 https 页面。 结果,

http://mydomain.com/?p=abc
http://mydomain.com/?q=de
http://mydomain.com/?z=123
http://mydomain.com/

分别转到https://

https://mydomain.com/?p=abc
https://mydomain.com/?q=de
https://mydomain.com/?z=123
https://mydomain.com/

如何保持 http://mydomain.com/ 保持不变而不重定向到 https? 标准:如果没有参数(没有 ?p、没有 ?q、没有 ?z 等),则停留在 http。

谢谢

Seems like

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

works perfect and redirects all http requests to https pages.
As result,

http://mydomain.com/?p=abc
http://mydomain.com/?q=de
http://mydomain.com/?z=123
http://mydomain.com/

go to https://

https://mydomain.com/?p=abc
https://mydomain.com/?q=de
https://mydomain.com/?z=123
https://mydomain.com/

respectively.

How to keep http://mydomain.com/ stay with no redirection to https?
Criteria: if no parametres (no ?p, no ?q, no ?z etc.), then stay at http.

Thank you

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

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

发布评论

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

评论(2

你的往事 2025-01-03 17:48:29

如果您想在查询字符串为空时继续使用 HTTP,请使用下面的解决方案 #1。

如果您只想在存在 p、q 或 z 参数时保留 HTTP,请注释掉 #1 解决方案并取消注释 #2 解决方案。

RewriteCond %{HTTPS} off
#1 if query string is not empty
RewriteCond %{QUERY_STRING} !^$
#2 only if p or q or z params are not present
#RewriteCond %{QUERY_STRING} !(^|&)(p|q|z)= [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

If you want to stay on HTTP when the query string is empty, use solution #1 below.

If you only want to keep HTTP when p, q, or z params are present, comment out the #1 solution and uncomment out the #2 one.

RewriteCond %{HTTPS} off
#1 if query string is not empty
RewriteCond %{QUERY_STRING} !^$
#2 only if p or q or z params are not present
#RewriteCond %{QUERY_STRING} !(^|&)(p|q|z)= [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
平安喜乐 2025-01-03 17:48:29

根据您的条件使用此代码:

RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{REQUEST_URI} !^/*$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Use this code for your conditions:

RewriteCond %{HTTPS} off
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{REQUEST_URI} !^/*$
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文