我搜索过Google和StackOverflow,试图找到解决方案,但它们似乎都与ASP.NET等有关。
我通常在服务器上运行Linux,但是对于这个客户端,我使用的是带有IIS 7.5(和Plesk 10)的Windows。这就是为什么我 稍微不熟悉IIS和web.config 文件的原因。在.htaccess文件中,您可以使用重写条件来检测协议是否为HTTPS并进行相应的重定向。有没有 简单的方法 可以使用web.config文件甚至使用已安装的“ URL Rewrite ”模块来实现此目的?
.htaccess
我 没有ASP.NET的经验, 因此,如果解决方案中涉及此内容,请提供清晰的实现步骤。
之所以使用web.config而 不是 PHP 这样做是因为我想对站点内的所有资产强制使用HTTPS。
您需要URL重写模块,最好是v2(我没有安装v1,因此不能保证它会在那里工作,但是应该可以)。
这是此类web.config的示例-它将对所有资源强制使用HTTPS(使用301永久重定向):
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <clear /> <rule name="Redirect to https" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
PS 此特定解决方案与ASP.NET/PHP或任何其他技术无关,因为它仅使用URL重写模块完成-它在初始/较低级别之一中进行处理- 在请求到达您的代码之前被执行。