Php 使用Zend framework 2.0中的.htaccess文件将http请求更改为https

Php 使用Zend framework 2.0中的.htaccess文件将http请求更改为https,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我有一个用Zend Framework 2.0编写的应用程序。ssl证书已在生产站点中配置。用户发出的HTTPS请求没有问题。我想将用户发出的所有HTTP请求更改为HTTPS 我在公用文件夹(IIS服务器)中的.htaccess文件中使用了下面编写的代码 但是,问题是让我键入URL。它正在变为。你可以用谷歌搜索它。下面是一个简单的例子: RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 发现

我有一个用Zend Framework 2.0编写的应用程序。ssl证书已在生产站点中配置。用户发出的HTTPS请求没有问题。我想将用户发出的所有HTTP请求更改为HTTPS

我在公用文件夹(IIS服务器)中的.htaccess文件中使用了下面编写的代码


但是,问题是让我键入URL。它正在变为。

你可以用谷歌搜索它。下面是一个简单的例子:

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

发现

您似乎有apache服务器,而不是IIS,这对IIS不起作用。规则的顺序在这里很重要:

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [L]

问题与ZF2无关,而是与Apache mod rewrite模块有关。我不知道你是否可以编辑vhost,但如果可以的话,你可能想在它运行后阅读。
RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [L]