当我将我的网站部署为Azure Web App时,我的AddRedirectToWwwPermanent()
重写规则是将“www.”添加到默认Azure URL的前面,例如。www.myproject.azurewebsites.net
.使用“www”与子域,导致页面无法加载.
是否有方法跳过专门针对*.azurewebsites.net
URL的AddRedirectToWwwPermanent()
重写规则?
我目前正在使用Startup.cs
中的重写器:
app.UseRewriter(new RewriteOptions()
.AddRedirectToWwwPermanent()
);
或者,有没有办法将*.azurewebsites.net
URL重定向到我自己的自定义域?我尝试了以下方法,但不起作用:
app.UseRewriter(new RewriteOptions()
.AddRedirect(@"myproject.azurewebsites.net", @"www.example.com", StatusCodes.Status301MovedPermanently)
.AddRedirectToWwwPermanent()
);
更新,也尝试过:
app.UseRewriter(new RewriteOptions()
.AddRedirect(@"https://myproject.azurewebsites.net", @"https://www.example.com", StatusCodes.Status301MovedPermanently)
.AddRedirectToWwwPermanent()
);
6条答案
按热度按时间wsxa1bj11#
下面是我的解决方案,它适用于
ASP.NET Core 2.1
。然而,我不知道这是否是最有效的重定向方式,所以我愿意接受更好的建议。由于我不能让内置的
AddRedirect()
规则工作(我仍然认为我可能只是使用错误),我创建了一个自定义重写规则来进行重定向。下面是我的
RedirectAzureWebsitesRule
,它将*.azurewebsites.net
重定向到自定义域:然后在
Startup.cs
中,我在AddRedirectToWwwPermanent()
之前调用了新规则:uklbhaso2#
只是和井中的回答略有不同。如果你想保持
azurewebsites.net
域仍然运行,你可以执行以下操作:这将确保您可以在两个域上运行(如果您需要):
bvjxkvbb3#
您可以在站点的
web.config
文件中添加重定向规则。您可以通过将以下重写规则添加到wwwroot
文件夹中的web.config
文件来完成此操作。如果您没有web.config
文件,那么您可以创建一个,只需将下面的文本粘贴到其中,只需更改主机名以匹配您网站的主机名:有关详细信息,请参阅article。
您可以通过将现有的自定义DNS名称Map到Azure Web Apps来实现这一点,这里是article。
suzh9iv84#
这应该可以工作:
vfwfrxfs5#
正如@tj-cappelletti在评论中指出的那样,有一个新的过载使这变得容易。
这将重定向请求到“myproject.com“到“www.myproject.com“,但将留下任何其他(包括“*. azurewebsites.net“)单独.您甚至可以指定一个域的列表,而不仅仅是一个.
Disable Cache
框。现在,当您访问其中一个时,您将获得当前的重定向输出。如果你不这样做,它可能看起来像所需的重定向是“仍然错误”,当你实际上已经修复它,只是有旧的数据。*bcs8qyzn6#
您需要添加以下内容: