我正在尝试以下几种方法。我有一个领域,我在那里发表。此发布仅由http发布,但我需要https的所有请求将我重定向到http,因为我没有为此安装和配置ssl证书。
我尝试在documentroot的.htaccess文件中添加以下行:
RewriteEngine On
RewriteCond% {HTTPS} on
RewriteRule (. *) Http: //% {HTTP_HOST}% {REQUEST_URI} [R = 301, L]但这并不意味着通过https进入的任何内容都会将我重定向到http。我会错过什么?
诚挚的问候。
编辑:
好的。
太好了,我想我能更好地理解它。若要将https重定向到http,必须在apache服务器上生成并存储ssl证书。
作为测试,我使用openssl工具创建了一个自签名证书。
openssl req -x509 -nodes -days 365 -newkey rsa: 204 .....我已经正确地生成了它。
下一步已经启用了默认的-ssl.cnf站点,我在该站点中添加了前面生成的ssl证书数据的路径。
在这一步中,我需要做什么操作来启用从https到http的重定向,例如,我的wordpress实例。
下面是我默认的-ssl.conf文件
ServerName www.mydomain.org
ServerAdmin webmaster @ localhost
DocumentRoot / var / www / html/wordpress
FollowSymLinks options
AllowOverride None
Options -Indexes + FollowSymLinks + MultiViews
Allow to cancel all
ErrorLog $ {APACHE_LOG_DIR} /error.log
Record Level Warning
CustomLog $ {APACHE_LOG_DIR} /ssl_access.log combined
SSLEngine on
SSLCertificateKeyFile /etc/apache2/sslcert/apache.key
SSLCertificateFile /etc/apache2/sslcert/apache.crt
#SSLCACertificateFile /etc/ssl/certs/bundle.crt
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and later versions should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown问候
发布于 2019-08-08 08:18:11
如果没有ssl证书,这是无法工作的。原因如下:
当浏览器连接到服务器时,安全层在浏览器发送HTTP请求(例如: GET /HTTP 1/1)之前验证连接(包括证书上的名称(S)和浏览器请求的名称)。
HTTP对话框对于http和https都是一样的,但是加密是在开始之前协商的。
对于HTTP1.1,所有请求都应该具有宿主请求的主机:报头专门化,Apache将从请求中的Host: header和URI的组合中计算出完整的URI。
如果无法启动HTTP会话,则无法获得请求,因此无法以任何方式响应请求。
https://serverfault.com/questions/978436
复制相似问题