重定向除Apache 000-default.conf中的URL以外的所有URL

时间:2018-08-24 12:29:26

标签: apache2 http-redirect

我要求将一个URL保留为HTTP,其余所有URL均为https。 我的货币000-default.conf配置为:

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    Redirect permanent / **https**://www.abc.com/
</VirtualHost>

这会将所有URL重定向到https。 现在我在此站点上有一个URL,网址为 http ://www.abc.com/blog 我不希望它重定向到https。我该如何实现?

1 个答案:

答案 0 :(得分:1)

您当前的食谱有点混乱。 RewriteCond不会阻止紧随其后的重定向,它只会影响RewriteRule。但是您永远不会在端口80虚拟主机上看到HTTPS请求。

您可以将重定向切换为实际使用mod_rewrite并添加异常。这些条件默认情况下为AND:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !=www.example.com
RewriteCond %{REQUEST_URI} !^/blog$
RewriteRule ^(/.*) https://www.example.com/$1 [R=301]