IIS urlMappings перенаправляет и SEO - PullRequest
1 голос
/ 13 февраля 2012

Я использую 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

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

1 Ответ

0 голосов
/ 14 февраля 2012

Вот моя работа:

Я добавляю обе записи, с и без завершающего символа '/', в 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

Это перманентно перенаправляет и вызывает на отображенную страницу без завершающего '/' на той же странице с завершающим '/'

...