将所有内容从http重定向到https(联系页面除外) [英] Redirect all from http to https except contact page

查看:232
本文介绍了将所有内容从http重定向到https(联系页面除外)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将网站上的所有页面从https重定向到http,但/ contact页面却始终要重定向到https域?

How do I redirect all pages on a site from https to http except the /contact page which I always want to be redirected to the https domain?

我可以将所有内容从http重定向到https,如下所示:

I can redirect all from http to https as follows:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

但是,我在为联系人页面添加例外时遇到了麻烦,我想始终将其从http重定向到https

However, I'm having trouble adding the exception for the contact page which I want to always redirect from http to https

更新

我已经按照建议添加了规则,但是/ contact现在重定向到/index.php?q=contact。

I've added the rules as suggested but /contact is now redirecting to /index.php?q=contact.

我正在使用具有以下规则的ModX:

I'm using ModX which has the rules:

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

为什么与将/ contact(http)重定向到/ c的新规则冲突完整(https)?

Why is this conflicting with the new rule to redirect /contact (http) to /contact (https)?

谢谢:)

推荐答案

使用此:

RewriteEngine On

RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^\/contact\/
RewriteRule (.*) https://%{HTTP_HOST}/$1 [L,R=301]    

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

这篇关于将所有内容从http重定向到https(联系页面除外)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆