导致401和多个302的HTACCESS问题

时间:2016-03-21 02:39:11

标签: php apache .htaccess mod-rewrite ssl

我有一个基于PHP MVC的框架的网站。

我已经为整个网站添加了密码保护,直到我准备好向公众开放。

我正在尝试实施网站范围的HTTPS。我已经在服务器上安装了EV SSL证书(Apache)。

当我将代码添加到htaccess以强制所有网址重定向到https时,我收到“由于多个302重定向导致的401错误”。

访问我的网站时收到的确切错误是: 此网页有重定向循环。 ERR_TOO_MANY_REDIRECTS

我已经在没有解决方案的情况下对此主题进行了大量研究。对我的错误的任何帮助和解释将不胜感激。

这是我的htaccess文件中的确切代码:

DirectoryIndex index.php

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css  text/javascript
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On

# start https
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.org/$1 [R,L]
# end https

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php?url=$1 [PT,L,QSA]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>

# header modifiers
# By default allow all access
Order allow,deny
Allow from all

# Password protect entire site until launch
AuthType Basic  
AuthName "restricted area"  
AuthUserFile /home/mydirectory/public_html/.htpasswd  
require valid-user

1 个答案:

答案 0 :(得分:0)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

上面的代码总是对我有用。 您可以直接在浏览器上访问安全(https)页面吗?

确保您已为HTTPS正确配置了apache。

示例配置:

<VirtualHost *:443>
DocumentRoot /var/www/html
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/DigiCertCA.crt
</VirtualHost>