Как перемещать страницы и переименовывать их, не прерывая входящие ссылки с внешних сайтов, которые все еще используют плохо сформированные URL - PullRequest
4 голосов
/ 31 января 2011

обновление

enter image description here

Вот ситуация:

Я работаю над сайтом, которыйимеет нет структура физической папки.Ничего не планировалось и не контролировалось, и было около 4 последовательных вебмастеров.

Вот пример особенно уродливого каталога

  • \new\new\pasite-new.asp

большинство страниц хранятся в папке с тем же именем, что и файл, для максимальной избыточности.

  • \New\10cap\pasite-10cap.asp
  • \QL\Address\PAsite-Address.asp

каждаяиз этих [каталогов страниц]?(Я не знаю, как еще их назвать) имеет папку include, папка include содержит одинаковые файлы *.inc в каждом случае, просто скопированные примерно 162 раза для каждого каталога страниц.Папка включения была продублирована, поэтому <!--#include file="urlstring"--> будет работать правильно из-за отсутствия понимания относительных путей, а #inclue virtual directive или с использованием server.execute()

Вот изображение, если мое объяснение отсутствовало.

directory structure


Вот некоторые из моих ограничений:

  • Сайт написан на ASP classic
  • Сервер - Windows Server 2003 R2 с пакетом обновления 2 (SP2), IIS 6 (согласно моему ресурсу)
  • У меня нет доступа к серверу IIS
  • Мне нужно пройти через процесс, чтобы добавить любой модули или функции для iis

Какие изменения я могу внести, чтобы я мог перемещать страницы и переименовывать их, не прерывая входящие ссылки с внешних сайтов, которые все еще используютплохо сформированные URL?

Чтобы сделать мой вопрос более конкретным.

Как я могу переместить файл 10cap.asp из \new\10cap\ в лучшее место, такое как \и переименуйте файл в нечто вроде saveourhomescap.asp и не прерывайте входящий lчернила и, наконец, не нужно оставлять пустую страницу 10cap.asp в исходном месте с перенаправлением на новую страницу.

Ответы [ 5 ]

2 голосов
/ 02 февраля 2011

Ух ты, с этим связано множество ограничений.

Можете ли вы настроить пользовательскую страницу ошибки?Если это так, вы можете добавить некоторый код на пользовательскую страницу ошибок, которая перенаправит пользователей на новую страницу.Поэтому, возможно, вы создаете пользовательскую страницу 404, и на этой странице вы берете переменную строки запроса и на основании этого отправляете пользователя на правильную «новую» страницу.Это позволит вам удалить все старые страницы.

Вот довольно хорошая статья об этом методе: Перезапись URL для Classic ASP

1 голос
/ 08 февраля 2011

Что ж, у вас много ограничений, и, в особенности, нет доступа к серверу IIS. Модуль ISAPI для перезаписи URL здесь не вариант (IIS) и, в равной степени, настраиваемая страница 404, на которой вы можете прочитать реферер и переслать HTTP 301, не будет работать (IIS).

Я бы порекомендовал вам пройти через процесс и позволить им установить:

  • Модуль перезаписи URL ISAPI

или если это не работает (по любой причине):

  • Пусть они направят HTTP 404 вашей сети на пользовательский 404.asp, прочитают реферер и перенаправят с помощью HTTP 301 (постоянно перемещено) в ваше новое местоположение.

Если ничего из этого не подходит вам, я могу подумать о другой возможности. Я на самом деле не пробовал, поэтому я не уверен на 100%, будет ли это работать, но в теории это звучит хорошо;)

Вы можете сделать в своем global.asa в событии Session_OnStart a Response.Redirect или изменить заголовок вашего ответа на HTTP 301. Это на самом деле будет работать только для новых пользователей, а не исправить реальные ошибки 404. Извините за псевдокод, но некоторое время назад я имел какое-то отношение к классическому ASP, и я думаю, вы поймете, что я имею в виду;)

sub Session_OnStart

    ' here should be a Select Case switch or something like that 
    Response.Redirect("newlocation.asp")

    ' or if that will work, this would be better (again with switch)
    Response.Status = "301 Moved Permanently"
    Response.AddHeader "Location", "http://company.com/newlocation.asp"

end sub

Надеюсь, это поможет.

0 голосов
/ 08 февраля 2011

urlrewrite будет работать только если вы можете установить dll на сервер

одна из этих статей поможет

http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=qRR&q=url+rewrite+classic+asp&btnG=Search&aq=f&oq=&aqi=g-m1

в основном вы должны указать 404 ошибки на странице ошибок, которая будет анализировать поступающую информацию строки запроса / записи и перенаправлять пользователя в правильное местоположение с добавленными входящими параметрами.

вариантов этой темы можно найти в примерах для Google.

0 голосов
/ 04 февраля 2011

Вы можете попробовать ISAPIRewrite, так как это классический ASP + IIS6 http://www.isapirewrite.com/

У них есть облегченная версия, которая, вероятно, достаточно хороша для вашего использования.

0 голосов
/ 01 февраля 2011

Я рекомендую использовать URL Rewrite для этого, см. Следующий блог об этом, в частности «Реорганизация сайта»:

http://blogs.msdn.com/b/carlosag/archive/2008/09/02/iis7urlrewriteseo.aspx

Подробнее о перезаписи URL см. http://www.iis.net/download/URLRewrite

...