我想使用htaccess将特定网址重定向到非https

时间:2017-03-20 06:08:53

标签: php apache .htaccess mod-rewrite

我目前的htaccess是: -

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
   RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
</IfModule>

我想为https://www.example.com/abc/arg1/arg2之类的网址添加规则htaccess应重定向到http://www.example.com/abc/arg1/arg2 对于这个https://www.example.com/abc/ *,它应该保留所有参数,重定向到非https格式。

3 个答案:

答案 0 :(得分:0)

使用以下规则,清除缓存后进行检查。

RewriteCond %{REQUEST_URI} ^/abc/(.*) [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

修改:请尝试使用以下规则,

RewriteCond %{REQUEST_URI} !^/abc/(.*) [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

在上述规则中,我们将https附加到所有不以abc/(.*)开头的网址,您必须使用原始https规则所在的rewritecond

答案 1 :(得分:0)

如果您要将以abc/开头的所有https请求重定向到http,则必须同时检查abc/HTTPS

RewriteCond %{HTTPS} on
RewriteRule ^abc/ http://www.example.com%{REQUEST_URI} [R,L]

如果一切正常,您可以将R替换为R=301permanent redirect)。 从不使用R=301进行测试。

答案 2 :(得分:0)

我不确定您是如何完成工作的,但是以下内容对您来说应该很合适。

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} ^/abc [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]