我如何使用 mod rewrite 将除少数几个之外的所有 url 重写为 https

发布于 2024-12-13 07:47:17 字数 354 浏览 0 评论 0原文

我用 codeigniter 创建了一个网站,下面是当前的 htaccess 文件:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

我需要添加一些规则,以便该网站仍然正常工作,但大多数 URL 都重定向到 https。需要免除此规则的网址是:

/about /常见问题解答 /条款和条件 /联系我们 /privacy-policy

所有这些豁免的 url 应通过正常的 http 访问

I have made a site with codeigniter below is the current htaccess file:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

I need to add some rules so that the site still works as normal but most URLs are redirected to https. The urls that need to be exempt from this rule are:

/about
/faqs
/terms-and-conditions
/contact-us
/privacy-policy

All of these urls that are exempt should be accessed over normal http

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

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

发布评论

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

评论(1

白云悠悠 2024-12-20 07:47:17

要将非 http 请求重定向到 https,请在 RewriteCond 中使用 %{HTTPS}

RewriteCond %{HTTPS} off

如果请求是 https,则此条件失败并跳过该规则。然后要免除路径,您可以在之后添加它们

RewriteCond %{REQUEST_URI} !/about /faqs /terms-and-conditions /contact-us /privacy-policy

最后,重定向

RewriteRule ^(.*)$ https://your-site.com/$1 [R,L]

您需要在上面的规则的重写条件上方添加这 3 行,该规则将所有内容重写到 index.php

To redirect non-http request to https, use the %{HTTPS} in RewriteCond

RewriteCond %{HTTPS} off

If the request is https, this condition fails and the rule is skipped. Then to exempt paths, you can add them after

RewriteCond %{REQUEST_URI} !/about /faqs /terms-and-conditions /contact-us /privacy-policy

Then finally, the redirect

RewriteRule ^(.*)$ https://your-site.com/$1 [R,L]

You'll want to add these 3 lines above the rewrite conditions for the rule you have above that rewrites everything to index.php

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