JPais Ответов: 1

Как перенаправить на определенную страницу, если страница не найдена в переписанном url-адресе


Всем Привет

Я работаю над проектом, где у меня есть страница результатов поиска. Я переписал url-адрес.

Мой url:

www.xyz.com/city/area/search/category/cs-tCbQIY8hMYQ-TT-3d

Теперь вот если удалить последнюю часть из url-адреса (после/), то есть
www.xyz.com/city/area/search/category я получаю сообщение об ошибке 404 страница не найдена.

Как я могу избежать этой ошибки, перенаправив пользователя на существующую страницу?

Я знаю, что это возможно

<customErrors mode="RemoteOnly" defaultRedirect="~/Error">
   <error statusCode="500" redirect="~/Error" />
   <error statusCode="404" redirect="~/NotFound" />
</customErrors>


Но возможно ли перенаправление во всех ситуациях

www.xyz.com/city/area/search/category/cs-tCbQIY8hMYQ-TT-3d
www.xyz.com/city/area/search/category/
www.xyz.com/city/area/search/
www.xyz.com/city/area/
www.xyz.com/city/

Должен ли я создавать страницу для каждой возможности?

Пожалуйста, проводите.

Спасибо

Что я уже пробовал:

Правило, которое я использую в webconfig
<rule name="city and category">
<match url="^([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-]+)$" />
<action type="Rewrite" url="/searchresults.aspx?city={R:1}&area={R:2}&type={R:3}&query={R:4}&cc={R:5}" redirecttype="Permanent" />
</rule>

1 Ответов

Рейтинг:
0

F-ES Sitecore

Вы не должны этого делать, это нарушает правила интернета и может иметь для вас SEO-последствия. Если url-адрес не существует, то он должен вернуть 404, чтобы вызывающие службы могли правильно его обработать. Если бы вы не сделали 404 своих URL-адресов, то поисковые системы подумали бы, что каждый несуществующий url-адрес имеет один и тот же html-код, и это может быть засчитано вам как дубликат контента.

Вместо этого вам следует реализовать пользовательскую страницу 404, которая имеет некоторые функциональные возможности, такие как окно поиска, просмотр списков категорий и т. д.