php - 使用 https 重定向配置 .htaccess mod_rewrite
问题描述
我们的服务器使用原则并为其配置了 htaccess - 将所有请求重定向到 init dev.php 脚本。
添加重定向到 https 后我遇到问题:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !/payment/
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* dev.php [L]
RewriteRule \.html$ dev.php [L]
RewriteRule \.haml$ dev.php [L]
</IfModule>
转发到 https 工作正常,但是当通过 http 访问支付控制器时,例如http://host/payment/payment_server - 重定向发生在: https://% {host}/dev.php 并且学说显示错误 404 - 未找到模板 dev.php 虽然它应该打开一个指向控制器的链接,但没有排除规则中指定的重定向:
RewriteCond %{REQUEST_URI} !/payment/
如果我删除对 https 的重定向,那么一切都在 http 上正常工作。
请帮助配置,使其正常工作,重定向到除支付控制器以外的任何地方的 https
解决方案
推荐阅读
- r - 在R中的单词列表中移动字符
- bash - 如何正确转义要传递给`docker run /bin/bash --init-file`的脚本
- python - 如何使用python从串行读取数据?
- reactjs - 如何使用 React Hooks 提取通常使用 yield 调用的功能?
- python - 在 Python 中读取列表
- proguard - 使用 Proguard 保留所有没有特定字符的方法
- java - 在 Java 中使用访问者模式进行双重调度
- algorithm - 如果一个循环执行固定次数,是否会影响时间复杂度
- installshield - 如何在 InstallScript 中散列字符串?
- cmd - 在cmd中制作循环进度条(或加载条)