apache - htaccess 将所有流量从 http 重定向到 https,但也重定向到在 https 上隐藏一次的 index.php

标签 apache .htaccess http redirect https

我正在寻找一个可以执行以下操作的 .htaccess 文件,我已经设法让每个功能单独工作但不能一起工作。

要求 1: 所有 HTTP 流量都重定向到 HTTPS

要求 2: 所有 HTTPS URL 都定向到 index.php?url_params=

我要么以 request_uri 的无限循环结束,要么以服务器错误结束:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{HTTPS} off
#RewriteCond %{HTTP:X-Forwarded-Proto} = http
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php?url_path=$1 [L,NC,QSA]

因此,如果有人输入“http://www.example.com/page1”,它将重定向到“https://www.example.com/page1”,然后将“https://www.example.com/page1”发送到 index.php,并将 page1 作为 url 参数发送

谢谢

D

最佳答案

试试这些规则:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url_path=$1 [L,QSA]

在测试此更改之前清除浏览器缓存。

关于apache - htaccess 将所有流量从 http 重定向到 https,但也重定向到在 https 上隐藏一次的 index.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34939216/

相关文章:

javascript - node.js 上的客户端 ssl 授权

c - 是否可以将 zip 文件视为 apache 中的 documentRoot?

php - 关于 .htaccess 和友好 url 的几个问题

.htaccess - 只需使用 .htaccess 删除一个 url 段

linux - 全新安装 codeigniter 404 错误或下载每个页面

http - 带有Rust的AWS Lambda的reqwest段错误

java - 出现不明字符时,如何将URL转为URI?

django - 无法使用Cpanel/WHM连接到Centos7中的WSGI守护程序进程mod_wsgi

java - 启动 Apache Server 时启动应用程序

.htaccess - htaccess - 一个干净的 URL 有效,但另一个无效