我正在一个主要是自定义的网站上工作,并且HTTP没有正确重定向到HTTPS。
该网站可以很好地加载,但是HTTP版本无法正确重定向,因此显示为重复内容。
我以几种不同的方式看待它,我正在画一个空白。
将对index.php的HTTP请求重写为简单的域名
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^index\.php$ https://www.*****.com [R=301,L]
301重定向-如果缺少网页,则重定向到index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule . index.php [L]
修复了规范化问题-如果HTTP请求中缺少www,请添加
RewriteCond %{http_host} ^insynergystl.com [nc]
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ https://www.insynergystl.com/$1 [r=301,nc]
始终使用https进行安全连接
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.insynergystl.com/$1 [R=301,L]
答案 0 :(得分:0)
尝试将https重定向放置到.htaccess中重定向列表的顶部,或者放置到虚拟主机配置本身。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
如果您将日志级别设置得更高,则可以调试重定向,只是不要忘记在要测试的部分之后立即将其关闭:
LogLevel alert rewrite:trace8
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
LogLevel alert rewrite:trace3
http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging
在测试时,请确保仅发出临时重定向,否则浏览器也会缓存重定向,即使代码不再会让您重定向。