我想在IIS 8.5中将非WWW重定向到WWW以及HTTP到HTTPS。如果用户键入http://example.com,http://www.example.com或https://example.com,则会将其全部重定向到https://www.example.com。
这是我的web.config文件
public async Task<Result> SomeAction()
{
var client = new AmazonSQSClient();
// List all queues that start with "aws".
var request = new ListQueuesRequest
{
QueueNamePrefix = "aws"
};
var response = await client.ListQueuesAsync(request);
// rest of the code
}
请注意,在IIS中我只有1个绑定,这是example.com,问题是:对于重定向到https://www.example.com的所有网址,但IIS的起始页面不是我的Default.aspx,而是我输入https://www.example.com/Default.aspx,它会给出404错误。
答案 0 :(得分:1)
您需要将每个主机名绑定到一个网站。任何未明确绑定到网站的主机名(或服务器IP地址)都将由IIS中的默认网站处理(绑定*
- 表示未绑定到正在运行的网站的任何主机名)。
一个不错的简单设置是在IIS中创建2个网站(让我们称之为Application
和Rewrites
) - 一个用于托管您的应用程序,另一个用于处理将其他域重写到您的主域。您绑定到Rewrite
网站的任何域都会将其流量重定向到https://www.example.com。
Application
网站www.example.com
Rewrite
网站example.com
。仅在端口80上绑定www.example.com
。在Rewrite
网站webroot文件夹中创建一个web.config,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect any traffic to Primary hostname" enabled="true" stopProcessing="true">
<match url="(.*)" />
<action type="Redirect" url="https://www.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
访问http://example.com,https://example.com或http://www.example.com的所有流量都将重定向到https://www.example.com(包括任何路径/查询字符串)
注意:您可以将默认网站用作Rewrite
网站,或将通配符*
绑定从默认网站移至新的Rewrite
网站 - 将任何域名重定向到您的网站https://www.example.com - 但这是不好的做法/不建议。