Перезапись URL-адреса в ASP.NET Core 2.1 без регулярного выражения

Мой значок находится в /images/favicon.ico, а не в корне. В Startup.cs я могу добавить перенаправление, чтобы избежать 404:

app.UseRewriter(new RewriteOptions()
  .AddRedirect("favicon.ico", "images/favicon.ico"));

Это хорошо работает, но, конечно, зависит от перенаправления. В документы также показывают, как используйте перезапись, чтобы пользователь не видел редиректа.

Я пробовал это, но получаю 404:

app.UseRewriter(new RewriteOptions()
  .AddRewrite("favicon.ico", "images/favicon.ico", skipRemainingRules:true));

Поэтому я подумал, что, возможно, мне нужно использовать фиктивное регулярное выражение:

app.UseRewriter(new RewriteOptions()
  .AddRewrite("^(favicon.ico)$", "images/favicon.ico", skipRemainingRules:true));

Но я все еще получаю 404. Как мне заставить это работать?


person lonix    schedule 10.08.2018    source источник
comment
Ваш значок находится в /images/favicon.ico, а не в /wwwroot/images/favicon.ico?   -  person Mathieu VIALES    schedule 10.08.2018
comment
Почему редирект вас не устраивает?   -  person Mathieu VIALES    schedule 10.08.2018
comment
@Wndrr Это в /wwwroot/images/favicon.ico. Перенаправление не нужно, вероятно, плохо для SEO, и должно быть просто использовать переписывание, но мой синтаксис неверен, и я не уверен, почему.   -  person lonix    schedule 10.08.2018


Ответы (1)


Согласно ответу Ionix, правила перезаписи должны применяться до вызова UseStaticFiles()


Старый ответ, больше не актуален

Следуя вашему вопросу, я провел много тестов с помощью метода AddRewrite, и я пробовал много вещей, вдохновленных официальная документация, но ничего не сработало. В лучшем случае я получил перенаправление ...

Так что мой ответ: вы не можете! Работает только редирект. Если вы найдете способ сделать настоящую работу по переписыванию, пожалуйста, дайте мне знать, но пока я считаю, что это невозможно.

Почему бы просто не использовать рабочее решение, перенаправление? Вам нужно переписать?

person Mathieu VIALES    schedule 10.08.2018
comment
Да, я пришел к такому же выводу! Я добавил отчет об ошибке в их репозиторий. Спасибо за подтверждение! (Если мы получим несколько голосов, возможно, кто-то посмотрит на это!) - person lonix; 10.08.2018
comment
Использование перезаписи URL-адресов по причинам SEO здесь также не может заставить его работать. Можно даже просто закомментировать строчку App.run в официальной документации и это не сработает. - person SteveGSD; 11.08.2018
comment
@SteveGSD и Wndrr видят мой новый ответ. - person lonix; 23.08.2018