2015-04-06 3 views
1

Один из самых расточительных переадресаций происходит, когда косую черту (/) отсутствует из URL, который должен иметь в противном случае one.For например, собирается http://example.com/action результатов в ответ, содержащий 301 перенаправление на http://example.com/action/ (обратите внимание на добавлен трейлинг-косая черта).Почему переадресация происходит при отсутствии конечной косой черты (/) из URL-адреса?

Так в чем причина этого и как его решить в случае приложения Asp.Net. Любая идея!

ответ

0

То, что вы описали, на самом деле хорошо, и рекомендуется в Интернете. На веб-сайте испытания nibbler: «Поисковые системы могут рассматривать их как отдельные страницы с дублирующимся контентом, за которые они могут оштрафовать».

301 (постоянное перенаправление) происходит только один раз на сервере. Он кэшируется браузером пользователя, и пользователь будет перенаправлен на правильный, не требуя сервера снова. так что не беспокойтесь об этом слишком много (это не так, как 302-временное перенаправление)

Но мне также любопытно, где это происходит. Я не сразу вижу это в своей маршрутизации. если кто знает, пожалуйста, поделитесь.

UPDATE: apperently у вас есть это свойство

routes.AppendTrailingSlash = true; 

возможно, что вызывает эффект?

0

Следующая логика пути Unix. URI без конечной косой черты указывает на файл, а конечная косая черта - это каталог.

Если вы нажимаете URI с завершающей косой чертой и на своем сервере вы установили список каталогов, вы увидите все файлы под этим путем. В противном случае можно перенаправить перенаправление 301 или 302, чтобы указать, что клиент должен отправить запрос с использованием другого местоположения.

С точки зрения клиентов эти два URI могут быть одинаковыми в Интернете. В результате сервер в большинстве случаев вместо отказа перенаправляется в другое место. Конечно, он настраивается.

Хотя я не являюсь экспертом в ASP, но, безусловно, перенаправление может управляться на сервере либо как конфиг, либо программно.

Смежные вопросы