首页 > 解决方案 > 使用 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

标签: phpapache.htaccessredirectmod-rewrite

解决方案


推荐阅读