【发布时间】:2017-05-06 11:35:54
【问题描述】:
我正在使用域/控制器/操作的默认路由配置。
例如,www.domain/Appointment/RequestAppointment 调用 Appointment 控制器和 RequestAppointment ActionResult。
我们的营销人员经常要求我为我们的 URL 的较短版本构建重定向,以便在社交媒体或广告牌上使用。
因此,他们希望将www.domain/Appointment/RequestAppointment 视为www.domain/appointment。
这样做没有问题,在这种情况下,我只是:
//Appointment Controller
public ActionResult Index()
{
return RedirectToAction("RequestAppointment");
}
现在,我们的 SEO 人员告诉我,新 URL (www.domain/appointment) 正在返回 302 重定向(我理解),这对 SEO 不利。他们想要一个 301。
所以,我知道我可以使用以下方法返回(从 SEO 角度来看所需的)301 重定向:
//Appointment Controller
public ActionResult Index()
{
return RedirectPermanent("http://www.domain.com/Appointment/RequestAppointment");
}
它有效,但有没有更好的方法或最佳实践来处理这个问题?我想这不会那么罕见,但我找不到任何东西。
我还必须对其他大约 10 个属于 www.domain/controller/action/id 格式的唯一 URL 执行相同的操作,这些 URL 将被重定向到 www.domain/promotion。
【问题讨论】:
-
你要找的不是
RedirectToActionPermanent吗? -
为什么要在应用程序代码中处理这个?为什么不在服务器级别处理它?你说你有10个这些?你能用一个正则表达式匹配它们吗?在您的网络服务器配置中进行模式匹配和永久重定向并完成。
标签: c# url asp.net-mvc