apache - htaccess 如果某个文件存在则强制使用 SSL

标签 apache .htaccess mod-rewrite ssl

我有以下在我的网站上强制使用 SSL 的 mod 重写代码:

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

如果我想关闭或打开它,我必须编辑 htaccess 文件。所以我想的是将一个名为 ssl_on 的文件存储在服务器的某个路径中,如果文件 ssl_on 存在,则适用此规则,如果文件不存在,则不应适用该规则。这可能吗?

最佳答案

您可以像这样使用您的规则:

RewriteCond %{HTTPS} off
RewriteCond %{DOCUMENT_ROOT}/ssl_on -f
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

-f 条件将确保仅当网站根目录中存在 ssl_on 文件时才会触发规则。另外最好使用 R=302 而不是 R=301 以避免浏览器中的永久重定向缓存。

关于apache - htaccess 如果某个文件存在则强制使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32477094/

相关文章:

php - Apache 重写规则和 POST 数据

php - 未加载 Firebird 扩展

php - .htaccess css 和图像文件重定向

linux - SVN 提交权限被拒绝

php - 如何密码保护整个网站但允许公众访问 1 个特定文件

php - 重定向/.htaccess 以将旧的 PHP 参数 URL 更改为 SEO 友好的 CakePHP URL?

php - 加载特定的 PHP 版本

wordpress - .htaccess 重定向所有页面,除了少数页面重定向到特定页面

php - CSS、包含和图像 VS mod_rewrite、相对路径和基本目录

apache - .htaccess 不适用于 Windows