regex - 在 .htaccess 上强制使用 HTTPS,但仅限于生产环境

标签 regex apache .htaccess mod-rewrite https

我一直在寻找一段可以强制使用 https:// 的代码片段。我发现了这个:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

问题是当我想在本地工作时,像“localhost”或“example.dev”这样的 url 它会尝试重定向到 https://localhost(它不起作用) .

我该如何解决?

(总而言之,我希望上面的代码片段仅在我在生产环境中使用时才有效,例如“example.com”)

最佳答案

I want the snippet above to work only when I use it on production, e.g example.com)

您可以使用重写条件将您的规则限制为仅针对 example.com:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]

关于regex - 在 .htaccess 上强制使用 HTTPS,但仅限于生产环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25818301/

相关文章:

解析 CSS 的 Javascript 正则表达式

php - ReSTLer API框架安装

PHP URL 重写 - 没有获取查询字符串参数

javascript - 如何删除 JavaScript 中最后一个匹配的正则表达式模式

regex - 连字符是否需要在正则表达式中转义?

javascript - 将字符串清理为 JSON

ruby-on-rails - 其中 dispatch.fcgi 提供与 "rackup"相同的行为

apache - 将 URL 重定向到另一个 URL

php - Laravel 5 部署出现内部服务器错误

regex - 删除部分网址