.htaccess查找和替换

.htaccess查找和替换,.htaccess,.htaccess,我的主机提供商让他们的SSL请求通过代理,我想强制https通过.htaccess文件,但SSL没有在443上侦听,因此通过端口、https on或要求SSL in.htaccess不起作用 我一直在试图找到一种通过.htaccess查找和替换的方法。例如,.htaccess将根据此人所在的URL搜索“http://”,并将所有出现的“http://”替换为“https://”,最终强制进行安全连接。到目前为止,我还没有找到一种使用.htaccess进行此操作的方法,因此非常感谢您的帮助 我知道

我的主机提供商让他们的SSL请求通过代理,我想强制https通过.htaccess文件,但SSL没有在443上侦听,因此通过端口、https on或要求SSL in.htaccess不起作用

我一直在试图找到一种通过.htaccess查找和替换的方法。例如,.htaccess将根据此人所在的URL搜索“http://”,并将所有出现的“http://”替换为“https://”,最终强制进行安全连接。到目前为止,我还没有找到一种使用.htaccess进行此操作的方法,因此非常感谢您的帮助

我知道我可以用JavaScript实现这一点,也可以用PHP实现这一点,但我确实在尝试通过.htaccess实现这一点。谢谢

在“正常”HTTP中,您不能。对不起

RewriteEngine On 
#if it is a regular http request
RewriteCond %{HTTPS} !=on
#rewrite every page to https version
RewriteRule ^(.*)$ https://www.yoursitenamehere.com/$1 [R,L]
正常请求如下所示:

GET / HTTP/1.1
Host: www.example.com
无论是HTTP还是HTTPS,这看起来都完全相同(主机头可以有一个端口号,但默认端口通常会省略)

还有一种替代语法(我怀疑)源自HTTP代理服务器:

GET http://www.example.com/ HTTP/1.1
有些web服务器支持第二种语法(Apache支持;我还没有测试其他语法),但客户机不会使用第二种语法,除非他们正在与HTTP代理对话。有时我会考虑使用第二个语法的过滤请求,因为它们可能是试图找到一个打开的代理。 有几个简单的选项:

  • 将SSL转发到其他端口
  • 在Web服务器上启用SSL
后者并不太复杂(如果你想在不同的证书上使用它,你可以使用StartSSL或滚动你自己的CA),你可以在“普通”HTTP中选择一个低开销的密码套件(例如RC4)

,你不能。对不起

正常请求如下所示:

GET / HTTP/1.1
Host: www.example.com
无论是HTTP还是HTTPS,这看起来都完全相同(主机头可以有一个端口号,但默认端口通常会省略)

还有一种替代语法(我怀疑)源自HTTP代理服务器:

GET http://www.example.com/ HTTP/1.1
有些web服务器支持第二种语法(Apache支持;我还没有测试其他语法),但客户机不会使用第二种语法,除非他们正在与HTTP代理对话。有时我会考虑使用第二个语法的过滤请求,因为它们可能是试图找到一个打开的代理。 有几个简单的选项:

  • 将SSL转发到其他端口
  • 在Web服务器上启用SSL

后者并不太复杂(如果你想在不同的证书上使用它,你可以使用StartSSL或滚动你自己的CA),你可以选择一个低开销的密码套件(例如RC4)

每个请求都将在端口80上(因为它通过代理服务器,SSL和http请求最终在端口80上提供),因此上述方法不起作用:-/编辑以检查https是否未打开。它仍然以无休止的重定向结束,因为由于代理服务器,服务器SSL未打开。我正试图找到一种方法,在URL中搜索“http://”,并将其替换为“https://”。不过谢谢,我很感激。:)我已经没有主意了,所以我要对你的问题投赞成票。我现在也很好奇到目前为止,我已经花了大约五个小时进行搜索-我开始发疯了-PEvery请求将在端口80上(因为它通过代理服务器,SSL和http请求最终将在端口80上提供),因此上述方法将不起作用:-/编辑以检查https是否未打开。它仍然以无休止的重定向结束,因为由于代理服务器,服务器SSL未打开。我正试图找到一种方法,在URL中搜索“http://”,并将其替换为“https://”。不过谢谢,我很感激。:)我已经没有主意了,所以我要对你的问题投赞成票。我现在也很好奇到目前为止,我已经花了大约五个小时进行搜索-我开始发疯了-谢谢你的提示;不幸的是,我绑定到特定的共享web主机,因此无法控制服务器配置:-(感谢您提供的提示;不幸的是,我与特定的共享web主机绑定,因此无法控制服务器配置:-(