如何在我网站的特定页面上从 http 请求重写为 https


How to rewrite from http requests to https on specific pages of my site?

嘿,人们。我看到这个话题在 SO 上一遍又一遍地重复,但我尝试了这里发布的几种解决方案,但没有一个对我有用。所以基本上 - 我知道如何更改我网站上的特定页面,以便它们处于https模式。但是,我不知道如何重写代码中的http请求。因此,例如,如果我的页面(例如 payment.php)包含加载外部 ccs 文件的链接,例如 -> http://example.com/somecss.css,那么谷歌浏览器会将其视为危险链接,并在网站网址旁边显示交叉红色挂锁。现在,我已经通过将代码中的所有 http 请求更改为 https 来手动测试它,并且挂锁神奇地变成了绿色,所以我想我需要某种 mod 重写规则来重写这些特定页面上的所有链接,以便它们包含 https。我希望我解释得足够好。谁能帮我?我正在使用代码点火器。

要重写代码中的http请求,您必须在那里使用协议相对路径。

<link rel="stylesheet" href="//www.domain.com/style.css"> 
<script src="//www.domain.com/script.js"></script> 

它将自动使用父页面的协议

您必须确保用户通过安全连接浏览您的网站。您可以使用包含以下行的.htaccess文件将用户重定向到安全连接 (https://):

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

请注意,.htaccess应位于网站主文件夹中。

如果您希望对特定文件夹强制使用HTTPS,则可以使用:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} somefolder 
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]

.htaccess文件应放置在需要强制使用 HTTPS 的文件夹中。