Apache RewriteCond针对HTTPS重定向的RewriteRule组合帮助

时间:2010-11-10 04:00:15

标签: 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.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-”情况下失败。

RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} ^(/admin|wp-login|wp-admin) [NC]
RewriteRule ^(.*)$ https://www.domain.com$1 [R,L]

这里有任何指示。

干杯。

1 个答案:

答案 0 :(得分:0)

上面的评论有助于摆脱重定向循环。我还试图通过多种方式简化前面的RewriteCond,但除了以上工作之外无法得到任何东西。

例如..为什么下面的RewriteCond不会更简单地做同样的事情..

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-urls与该条件/模式不匹配。