Удаление дубликатов URL при использовании симпатичных URL - PullRequest
1 голос
/ 08 ноября 2010

Я использую красивые URL-адреса в своем веб-приложении, один пример - forum / post / 1, который вызывает PostController в модуле Forum, который загружает сообщение с id = 1.Это то, что мне нужно, но этот пост также доступен с 'forum / post / view / id / 1'.Это плохо, потому что поисковым сканерам не нравится, когда одна и та же страница доступна из нескольких URL-адресов, верно?

Я использую инфраструктуру Yii, которая поддерживает параметр 'useStrictParsing', который сообщает, что входящий запрос должен соответствует хотя бы одному «симпатичному» маршруту, в противном случае запрос завершается неудачно с 404. Однако это не идеальное решение, потому что у меня нет симпатичных URL для каждого контроллера / действия.

В идеале, фреймворк должен перенаправить 'forum / post / view / id / 1 'to' forum / post / 1 'с кодом статуса 301.Как вы решили эту проблему?Это не вопрос Yii / PHP, как ваш фреймворк / инструмент справляется с этим?

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

Лучший способ убедиться, что поисковые системы оценивают только одну страницу по привлекательной ссылке на другую, если есть несколько способов просмотра содержимого, это использовать канонический тег в заголовке вашего документа

<link rel="canonical" href="http://www.mydomain.com/nice-url/" />

Это очень полезно для системы на основе Windows, поскольку IIS не учитывает регистр в своих веб-страницах, но веб-стандарт учитывает регистр.

Так

  • www.maydomain.com / Newpage.aspx
  • www.maydomain.com / newpage.aspx
  • www.maydomain.com / NEWPAGE.aspx

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

0 голосов
/ 08 ноября 2010

При условии, что никто не ссылается на ваши не красивые ссылки, поисковые системы никогда не узнают, что они существуют.

Если вы хотите устранить их, вы можете обойти свою веб-платформу, добавив псевдоним в файл конфигурации вашего веб-сервера; URL будет перенаправлен до того, как он достигнет фреймворка.

Фреймворки, такие как Django, которые не обеспечивают «магическую» маршрутизацию, не сталкиваются с этой проблемой, существуют только те маршруты, которые вы определяете вручную. В этом случае вы можете определить представление для не симпатичного URL, которое возвращает соответствующий редирект.

...