我刚刚在服务器上安装了SSL证书。
当前网址:www.example.com
当前正在使用的htaccess文件:
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ^(.*)$ public/ [L]
它重定向到public / index.php。
但问题是当我在htaccess中添加HTTPS代码时,这个public / index.php无效。
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^/?(.*) https://www.example.com/$1 [R]
当我删除公共重定向部分时,HTTPS正在工作,但没有指向public / index.php。
如何合并这些规则,以便使用https网址重定向到public / index.php。
PS:public / htaccess
ReWriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
请帮忙!
谢谢
答案 0 :(得分:1)
您可以使用PHP重定向到您的HTTPS网站:
if(empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == "off"){
$redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $redirect);
exit();
}
来自:Redirecting from HTTP to HTTPS with PHP
但是,这段代码需要包含在每个页面中,或者包含在所有其他文件中包含的PHP文件中。