作为我的系列的一部分,即在迁移一个站点来支持HTTPS的一部分,我们终于在我们将实施重定向的步骤中,以确保我们的用户始终使用HTTPS站点。在本文中,我将展示如何使用以下方式实现此重定向:
在下面的示例和说明中,我将在我的本地MAC开发环境和Windows Server 2008 R2上使用Apache,并为生产环境提供IIS 7.5。如果您使用Helicon的ISAPI重写模块,也可以使用Apache Mod重写实现的代码。这使得可以在我的开发(Mac)和生产(Windows)环境中使用相同的.htaccess文件。
如果您未启用Apache的重写模块,请通过取消注释Mod_Rewrite扩展名的LoadModule行来修改HTTPDD.conf配置文件。
我的httpd.conf文件位于:/etc/apache2/httpd.conf.。
$光盘/ etc / apache2$ sudo.纳米httpd.conf.
如果在Mac上的终端中运行上面的代码,则将使用Nano编辑器。滚动向下,直到看到以下行。删除哈希符号(#)以启用mod_rewrite扩展。
#redirect到安全网站rewritecond.%{https}关闭rewritecond.%{http_host}示例\ .com $重写^ https://%{http_host}%{request_uri}[l,r = 301]
第一个条件是确保当前请求不使用HTTPS,然后检查请求是否适用于我们的域。然后,我们使用永久性(301)重定向将不安全站点的所有请求重定向到安全站点。
我们将首先使用IIS Manager GUI创建重写规则。在大多数情况下,有几个步骤,在大多数情况下,通过在XML中添加规则定义,更容易且更快地修改Web.config文件。我们稍后会看看代码。
首先,打开IIS管理器并选择URL重写功能,然后单击加...链接添加新规则。
https:// {http_host} / {r:1}
在IIS中添加重写规则的更简单的方法是重定向所有不可思议的请求以使用HTTPS是在网站根目录中修改Web.config文件。
这是我的完整web.config文件,只有强uryhttps重写规则。如果您已经使用其他设置有Web.config文件,那么只需粘贴“<规则>
进入您的文件。
<?XML Version =“1.0”编码=“UTF-8”?><组态><system.webserver.><改写><外面><规则名称=“强制https.“停止处理=“真正“><比赛模式=“(。*)“/><条件><加输入=“{https}“模式=“^ off $“/>条件><行动类型=“改写“值=“https:// {http_host} / {r:1}“/>规则>外面>改写>system.webserver.>组态>
现在我们拥有所有请求被重定向到我们的HTTPS网站,下一步是确保我们的所有内部链接和规范标签都使用HTTPS URL。根据您的框架和代码结构,这将是非常容易的或非常努力。
您还可以使用协议 - 相对URL。这些只是退出协议的URL(“HTTP”部分)。例如,以下是协议相对URL: