用于HTTPS重定向的Apache RewriteCond RewriteRule组合帮助

用于HTTPS重定向的Apache RewriteCond RewriteRule组合帮助,apache,mod-rewrite,https,Apache,Mod Rewrite,Https,需要一些帮助来组合一些RewriteRule和RewriteCond并防止重定向循环 案例是强制所有传入的请求到这些模式,重定向到https://使用相同的模式 http://www.domain.com/admin --> https://www.domain.com/admin http://www.domain.com/something/wp-login --> https://www.domain.com/something/wp-login http://www.doma

需要一些帮助来组合一些RewriteRule和RewriteCond并防止重定向循环

案例是强制所有传入的请求到这些模式,重定向到https://使用相同的模式

http://www.domain.com/admin --> https://www.domain.com/admin
http://www.domain.com/something/wp-login --> https://www.domain.com/something/wp-login
http://www.domain.com/something/wp-admin --> http://www.domain.com/something/wp-admin
http://www.domain.com/something/else/wp-login --> https://www.domain.com/something/else/wp-login
http://www.domain.com/something/else/wp-admin --> https://www.domain.com/something/else/wp-admin
但真正的诀窍是我想用最少的语句来完成这一点。这是我到目前为止所做的,但它并不完全正确,在/admin案例中创建重定向循环,在wp-cases中失败

RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} ^(/admin|wp-login|wp-admin) [NC]
RewriteRule ^(.*)$ https://www.domain.com$1 [R,L]
非常感谢这里的指点


干杯。

上面的评论帮助我们摆脱了重定向循环。我还试图以多种方式简化前面的重写,但除了上面的方法外,我什么也做不到

例如..为什么下面的重写条件不做同样的事情,只是更简单

RewriteCond %{REQUEST_URI} ^/(.*)admin/?$ [NC]
在我看来,这应该是以下所有情况的真实情况

http://domain.com/admin
http://domain.com/admin/
http://domain.com/whatever/wp-admin
http://domain.com/whatever/wp-admin/
http://domain.com/whatever/somethingelse/wp-admin
http://domain.com/whatever/somethingelse/wp-admin/
但是由于某些原因,wp-URL与该条件/模式不匹配

重写规则^/*$https://www.domain.com/$1[R=301,L]