使用.htaccess,如何强制HTTPS而不与其他RewriteRules冲突?

时间:2013-01-16 00:40:29

标签: php .htaccess

我的.htaccess文件中有几个重定向指令,我将所有对根文件夹的调用重定向到/ Site文件夹,它工作正常。

Options +FollowSymLinks
RewriteEngine On

# Redirect index in root to index in Site folder
RewriteRule ^index\.php$  /Site/index.php [PT]
RewriteCond %{REQUEST_URI} !^/Site
RewriteRule ^(/?)(.*) /Site/$2

我现在需要的是在所有页面上强制使用https,当我添加以下指令时,它不起作用,我相信它进入了无限循环:

#RewriteCond %{HTTPS} off
#RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

使这项工作的正确指令是什么?

1 个答案:

答案 0 :(得分:0)

我通过在RewriteEngine On

之后添加以下内容解决了这个问题
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

出于某种原因

#RewriteCond %{HTTPS} off

无效