IIS urlMappings перенаправляет и SEO

Я использую IIS7 и urlMappings для сопоставления некоторых URL-адресов с реальными страницами.

Пример:

    <urlMappings>
        <!-- Remap friendly urls to actual pages: -->
        <add url="~/help/" mappedUrl="~/content/help/help.aspx" />
        <add url="~/news/" mappedUrl="~/content/news/default.aspx" />
    </urlMappings>

Это прекрасно работает, если URL имеет завершающий '/' , например:

http://www.mysite.com/news/

Но я получаю ошибку «Страница не найдена», если я делаю это:

http://www.mysite.com/news

Я мог бы добавить дополнительную запись без '/' в конце, чтобы обе отображались на одной и той же странице, но я не хочу делать это для SEO (подумаю, что это дублированный контент).

Можно ли заставить urlMappings перенаправлять?

Например, что-то вроде этого:

     <add url="~/help" redirect="~/help/" />

Если нет, то как лучше всего это сделать?

Как вы думаете, Google действительно накажет

http://www.mysite.com/news/

http://www.mysite.com/news

как дубликат?


person George Filippakos    schedule 13.02.2012    source источник


Ответы (1)


Вот моя работа вокруг:

Я добавляю обе записи, с завершающим символом «/» и без него, в urlMappings в web.config.

<urlMappings>
    <!-- Remap friendly urls to actual pages: -->
    <add url="~/help/" mappedUrl="~/content/help/help.aspx" />
    <add url="~/help" mappedUrl="~/content/help/help.aspx" />
</urlMappings>

Затем на самой странице добавьте следующий код на page_load:

    Dim mappedUrl as string = "/help"
    If Request.RawUrl.EndsWith(mappedUrl) Then
        Response.RedirectPermanent(String.Format("~{0}/", mappedUrl))
    End If

Это будет постоянно перенаправлять и вызывать сопоставленную страницу без завершающего «/» на ту же страницу с завершающим «/».

person George Filippakos    schedule 14.02.2012