apache 使用htaccess将https重定向到非https服务器上的http

3lxsmp7m  于 7个月前  发布在  Apache
关注(0)|答案(3)|浏览(103)

我的服务器没有设置HTTPS,但是有些用户仍然在URL中使用HTTPS浏览。这使我的聊天应用程序无法正常工作。
我需要通过更改htaccess文件将聊天页面从HTTPS重定向到HTTP。这些页面有URL/chat、/chat/index和chat/text。
我尝试了以下方法,但似乎无法让它工作:

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^chat$ http://%{HTTP_HOST}/$1 [R=301,L,NC]
RewriteRule ^chat/index$ http://%{HTTP_HOST}/$1 [R=301,L,NC]
RewriteRule ^chat/text$ http://%{HTTP_HOST}/$1 [R=301,L,NC]

我做错了什么?

ahy6op9u

ahy6op9u1#

如果您没有ssl证书或服务器上未启用ssl,则无法将https重定向到http。如果你没有ssl证书,你会得到一个ssl证书错误。你需要为你的域名购买一个ssl证书,以便将https重定向到http。
获取有效的ssl证书后,您可以使用以下规则将**https://example.com/chat重定向到http://example.com/chat**

RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^chat http://example.com%{REQUEST_URI} [L,R=301]
up9lanfz

up9lanfz2#

如果你的服务器上没有HTTPS,那么不要选择性地将所有内容重定向到HTTP

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

ercv8c1e3#

下面这个问题终于解决了:
将所有https和/或www请求重定向到non-httpsnon-www及其所有子目录。

https://example.com/ 至**http://example.com/**
https://www.example.com/http://example.com/
http://www.example.com/ 至**http://example.com/**

添加到我的**.htaccess**文件:

RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*) http://example.com/$1 [L,R=301]

请注意,不要在RewriteCond中用"."转义“."**
在我的共享主机上工作(用“.“转义”.”在我的主机上不起作用,令我惊讶的是)

相关问题