Как сделать 301 редирект на IIS?

12
Loofort
На сайте с 23.04.2006
Offline
28
2600

Как сделать 301 редирект на IIS с установленным ASP.Net 1.1?

note: Если делать responce.Redirect то получаю код 302.

SEO-Сервис по проверке индекса Google (http://seo4site.com/tools/index-checker/) пасрать тут (blog) (http://blog.seo4site.com/)
K. Ermakov
На сайте с 10.12.2004
Offline
328
#1
Loofort:
note: Если делать responce.Redirect то получаю код 302

По умолчанию отправляется отклик 302. Перед responce.Redirect

сделайте отправку отклика 301. И будет счастье.

С уважением, Константин Ермаков, absite.ru: онлайн кроссворды (http://absite.ru/); searchsuggest.ru: поисковые подсказки доставляют (http://searchsuggest.ru/).
Dwarf
На сайте с 06.10.2004
Offline
60
#2


Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.site.ru"
Деревянные окна (http://www.wood-win.ru/)
A
На сайте с 08.03.2003
Offline
203
#3

Dwarf, а в какой файл это вешается? у иис не .хтаксес ведь.. ;)

Славгородский Алексей,
Ваш Партнер – создание и продвижение сайтов (http://vashpartner.ru/)
K. Ermakov
На сайте с 10.12.2004
Offline
328
#4
aleks:
а в какой файл это вешается? у иис не .хтаксес ведь..

В начале asp скрипта

Dwarf
На сайте с 06.10.2004
Offline
60
#5
aleks:
Dwarf, а в какой файл это вешается? у иис не .хтаксес ведь.. ;)

Можно в global.asa положить:

<script language="vbscript" runat="server">

Sub Session_OnStart
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.site.ru/"
' заканчиваем сессию для того, чтобы при следующем запросе
' также сработало Session_OnStart
Session.Abandon
End Sub
</script>

но учтите, что событие Session_OnStart будет вызываться только при запросе страниц, обрабатываемых asp.dll (App Mappings) - т.е. .asp по умолчанию. Для .htm, например, редирект не сработает.

Еще можно воспользоваться ISAPI-фильтром, например http://www.isapirewrite.com/ - аналог апачевского mod_rewrite.

A
На сайте с 08.03.2003
Offline
203
#6

итак

K. Ermakov:
В начале asp скрипта

т.е. условно говоря вешаем в файл index.asp (до тега <html>...):

Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.site.ru"

так?

A
На сайте с 08.03.2003
Offline
203
#7
Dwarf:
Можно в global.asa положить:
<script language="vbscript" runat="server">

Sub Session_OnStart
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://www.site.ru/"
' заканчиваем сессию для того, чтобы при следующем запросе
' также сработало Session_OnStart
Session.Abandon
End Sub
</script>

но учтите, что событие Session_OnStart будет вызываться только при запросе страниц, обрабатываемых asp.dll (App Mappings) - т.е. .asp по умолчанию. Для .htm, например, редирект не сработает.

положил,

но, не работает однако 🙄 вообще не грузится морда, а если морда как index.htm, тогда не грузятся разделы, а редиректятся на www.site.ru

Dwarf:
Еще можно воспользоваться ISAPI-фильтром, например http://www.isapirewrite.com/ - аналог апачевского mod_rewrite.

если это есть оптимальное решение пробемы, то я не прочь приобрести данный продукт...

весь вопрос в том, как затем установить это на тарифном плане у хостинга ;)

Dwarf
На сайте с 06.10.2004
Offline
60
#8
aleks:
положил,
но, не работает однако 🙄 вообще не грузится морда, а если морда как index.htm, тогда не грузятся разделы, а редиректятся на www.site.ru

Хм. Какой вопрос - такой и ответ. Вы спросили, как сделать 301 редирект на ИИС, вам ответили. С Response.Redirect у вас нормально работает? Кого и куда вам надо редиректить, и главное - зачем?

aleks:
если это есть оптимальное решение пробемы, то я не прочь приобрести данный продукт...
весь вопрос в том, как затем установить это на тарифном плане у хостинга ;)

У Nthost, например, стандартно идет IISRewrite.

A
На сайте с 08.03.2003
Offline
203
#9

под апач вешается следующее в файле .htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\..*$
RewriteRule ^.*$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

для чего это вешается?

для того, что бы яндекс индексировал сайт исключительно с www, зачем? прежде всего затем, чт оесли он проиндексирует морду без www то морда практически вылетит (всмысле откатится на сотню другую позиций)

поэтому надо что-то придумать насчет ISS, всмысле уже все придумано, если кто-то в курсе, то посоветуйте мне, как оптимально реализовать подобное для сайтов на IIS 6.0

Dwarf
На сайте с 06.10.2004
Offline
60
#10

На ASP.Net это делается вот так:

http://www.codeproject.com/aspnet/URLRewriter.asp

На "классическом" АСП будет что-то вроде:


If InStr(Request.ServerVariables("SERVER_NAME"), "www.site.ru") = 0 Then
Response.Status = "301 Moved Permanently"
If Request.QueryString <> "" Then
Response.AddHeader "Location", "http://www.site.ru" & Request.ServerVariables("SCRIPT_NAME") & "?" & Request.QueryString
Else
Response.AddHeader "Location", "http://www.site.ru" & Request.ServerVariables("SCRIPT_NAME")
End If
Response.End
End If
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий