我正在寻找一个可以执行以下操作的 .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/