我需要帮助用户通过HTTPS访问我的网站。我只想通过HTTPS访问2个页面。所有其他页面应仅访问HTTP,如果用户尝试通过HTTPS访问该页面,则会将其重定向到该页面的HTTP版本。我已经尝试了几个.htaccess文件,但我似乎无法让它们中的任何一个工作。
非常感谢任何帮助!
答案 0 :(得分:1)
几种不同的方式:
您可以在2个页面(enroll.php
和Registered.php
)中放置一些逻辑,以重定向到HTTPS。
if ($_SERVER['HTTPS']!=”on”)
{
$redirect= “https://”.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
header(“Location:$redirect”);
}
假设您正在使用Apache Web Server(其他Web服务器,包括IIS与重定向机制非常相似),您可以使用模式匹配,对于这两个URL,请指定重定向到HTTPS。
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (enroll.php) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteRule (Registration.php) https://%{HTTP_HOST}%{REQUEST_URI}
答案 1 :(得分:1)
将其添加到.htaccess
个文件中,并将其放在目录的DocumentRoot
中。
RewriteEngine on
RewriteBase /
Rewritecond %{REQUEST_URI} (?:(?:enroll|Registered)\.php)$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [L,R=301]
RewriteCond %{HTTPS} on
Rewritecond %{REQUEST_URI} !(?:(?:enroll|Registered)\.php)$ [NC]
RewriteRule ^(.*) http://%{HTTP_HOST}/$1 [L,R=301]
启用重写记录:
RewriteEngine On
RewriteLog "/path/to/rewrite.log"
RewriteLogLevel 9
将以上3行放在virtualhost
中。重启httpd。
RewriteLogLevel 9
对Level使用较高的值会大大减慢Apache服务器的速度!仅在大于2的级别使用重写日志文件进行调试!
9级将记录几乎所有重写细节。
执行find / -name httpd.conf
或find / -name apache.conf
或find / -name apache2.conf
以查找conf文件的位置。通常在:/etc/httpd/conf
。
您在哪里添加SSL设置?
SSLCertificateFile
SSLCertificateKeyFile
SSLCertificateChainFile
等