重写规则以使用HTTP和HTTPS

时间:2012-01-06 15:09:42

标签: apache http mod-rewrite https

我有这个简单的重写规则,它在 http

下正常工作
RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$
RewriteRule ^/work/all.html  /portfolio/ [L,R=301]

但是,当我在 https 时,该规则不会生效。我将规则集修改为以下但无济于事。

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$
RewriteRule ^/work/all.html  /portfolio/ [L,R=301]

如何使该规则同时适用于 http https ?如果我需要提供更多信息,请告诉我。

1 个答案:

答案 0 :(得分:8)

Apache使用不同的vhost进行ssl配置:

<IfModule mod_ssl.c>
  <VirtualHost _default_:443>
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^www\.siku-siku\.com$
  RewriteRule ^/work/all.html  /portfolio/ [L,R=301]
  ...
  </VirtualHost>
</IfModule>

此链接有一个在Debian上使用SSL配置Apache的示例,但应该很容易推断到您所在的任何平台http://www.debian-administration.org/articles/349