问题描述
目标
背景
我有以下 .htacess
Options All -Indexes
RewriteEngine On
RewriteRule ^(.*)\.html $1\.PHP [L]
RedirectMatch ^/*$ https://**mydomain_name**/files/index.PHP
Options +SymLinksIfOwnerMatch
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /files/error.PHP [L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
问题
是否可以将地址包含internal(https://mydomain_name/internal/)的所有页面重定向到http(而不是https)?
解决方法
我们最好保持条件不处理对包含内部的 URI 的请求,而不是首先将它们重定向到 https,然后针对特别提到的 URI 移回 http。
Options All -Indexes
RewriteEngine On
RewriteRule ^(.*)\.html $1\.php [L]
RedirectMatch ^/*$ https://**mydomain_name**/files/index.php
Options +SymLinksIfOwnerMatch
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /files/error.php [L]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/internal [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]