我只希望有 3 个页面可以通过 HTTPS 访问。所有其他页面都应仅通过 HTTP 访问,如果用户尝试通过 HTTPS 访问该页面,它将重定向到该页面的 HTTP 版本。我尝试了几个 .htaccess 文件,但似乎无法让任何一个文件正常工作。
需要通过 HTTPS 访问的 3 个页面的名称是:enroll.php、payment.php、Registered.php
答案1
假设所有这些页面都在文档根目录中,文件也是如此.htaccess
:
RewriteCond %{HTTPS} =on
RewriteRule !^(enroll\.php|payment\.php|registered\.php)$ http://www.example.com/$1 [R=301]
RewriteCond %{HTTPS} =off
RewriteRule ^(enroll\.php|payment\.php|registered\.php)$ - [F]
注意大写 - 我已将您的字母改为小写Registered.php
,但如果不正确,您需要进行修复。
另外,我故意让您的重定向到 HTTPS 失败。原因是,如果您依赖重定向来捕获代码向未加密地址发送请求的位置,那么您的客户端将在非安全请求中发送敏感数据。不要重定向它。