4

嗨,目前我从 Godaddy 购买了 SSL 证书并安装在 LoadBalancer 上。我有一个 zend 框架应用程序,但我遇到了将站点重定向到 Https 的问题。以下是我发现将网站重定向到 https 的最简单方法的 Bootstrap 代码:

 protected function _initForceSSL() {
     if($_SERVER['SERVER_PORT'] != '443') {
      header('Location: https://' . $_SERVER['HTTP_HOST'] . 
                $_SERVER['REQUEST_URI']);
      exit();
    }

不幸的是,服务器错误返回。我在这里想念什么?谢谢

更新:

.htaccess 在文件的根目录

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ public/index.php [NC,L]
4

3 回答 3

1

由于您使用的是 Zend Framework,因此您可以尝试在 .htaccess 文件中使用以下代码:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.yoursite.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ public/index.php [NC,L]

让我知道它是否有效!

于 2013-03-02T12:56:04.643 回答
1

只需将此函数添加到您的引导文件中:

protected function _initForceSSL() {
    if($_SERVER['SERVER_PORT'] != '443') {
        header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
        exit();
    }
}
于 2018-06-21T03:58:10.427 回答
0

以下代码对我有用。

 RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule .* index.php
于 2021-06-14T05:28:52.050 回答