0

我要做的是通过http为文件夹/soap或标题中有/?p=uploads的页面提供服务,网站的其余部分通过https提供。

RewriteEngine on
RewriteBase /


RewriteCond %{QUERY_STRING} (^|&)(p=uploads)(&|$) [NC,OR]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^ - [E=IS_HTTP:1]

RewriteCond %{SERVER_PORT} 443
RewriteRule ^soap/?(.*) http://www.example.com/soap/$1 [R,L]

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/soap

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

它似乎适用于肥皂文件夹,但不适用于带有 /?p=uploads 的页面

4

1 回答 1

0

这是一种方法:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  !soap/?      [NC]
RewriteCond %{QUERY_STRING} !p=uploads/? [NC] 
RewriteRule ^(.*)$  https://www.example.com/$1    [L,R=301,QSA]

所有 URL 都被重定向到 HTTPS,除了那些具有/soap/?p=uploads

于 2013-01-12T21:23:32.850 回答