3

我已经使用 htaccess 强制所有页面重新路由到 https 使用...

RewriteEngine on
RewriteBase /

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://ourdomain.com/$1 [R,L]

有什么办法可以扭转 ourdomain.com/videos && ourdomain.com/blog 的规则,确保这些页面被迫放弃 https 并使用 http?

4

3 回答 3

6

您已经使用RewriteCond将重写限制为端口 80 上的请求。

不想为 and 重写端口 80 上的请求/videos/blog因此:

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/videos
RewriteCond %{REQUEST_URI} !^/blog
RewriteRule ^(.*)$ https://ourdomain.com/$1 [R,L]

并且您想在端口(大概)443 上重写对这些 URL 的请求:

RewriteCond %{SERVER_PORT} 443
RewriteRule ^/((videos|blog)/.*) http://ourdomain.com/$1 [R,L]
于 2012-05-07T01:04:36.660 回答
2

尝试

RewriteEngine on
RewriteBase /

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

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

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/videos
RewriteCond %{REQUEST_URI} !^/blog
RewriteRule ^(.*)$ https://ourdomain.com/$1 [R,L]
于 2012-05-07T01:04:19.000 回答
0

另一种解决方案。我希望它会有所帮助。

RewriteEngine on
Rewritebase /


RewriteCond %{SERVER_PORT} !^443$ [OR]
RewriteCond %{HTTPS} =off [OR]
RewriteCond %{ENV:HTTPS} =off
RewriteRule ^(/(.*))?$ https://%{HTTP_HOST}/$1 [R=301,L]
于 2021-03-25T22:10:08.417 回答