【问题标题】:Apache RewriteCond RewriteRule combo assistance for HTTPS redirects用于 HTTPS 重定向的 Apache RewriteCond RewriteRule 组合帮助
【发布时间】:2010-11-10 04:00:14
【问题描述】:

需要一些帮助来将一些 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]

非常感谢这里的任何指针。

干杯。

【问题讨论】:

  • RewriteRule ^/(.*)$ https://www.domain.com/$1 [R=301,L]

标签: apache mod-rewrite https


【解决方案1】:

上面的评论有助于摆脱重定向循环。我还尝试以多种方式简化前面的 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- url 与该条件/模式不匹配。

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 2017-08-13
    相关资源
    最近更新 更多