Вопрос

Я поддерживаю классическое приложение asp и, просматривая код, наткнулся на две похожие строки кода:

Request.ServerVariables("URL")
' Output: "/path/to/file.asp"

Request.ServerVariables("SCRIPT_NAME")
' Output: "/path/to/file.asp"

Я не понимаю...в чем разница?оба они игнорируют установленную мной перезапись URL-адреса, которая помещает папку /path в качестве корневого документа (указанный выше URL-адрес перезаписывается на «/to/file.asp»)

Больше информации:Сайт развернут на IIS 7.

Это было полезно?

Решение

Это может быть ошибка в IIS 7.

Я не мог получить Request.ServerVariables("URL") и Request.ServerVariables("SCRIPT_NAME") для возврата разных значений.Я пробовал случаи, когда они вызывались из включенного файла (<!--#include file="file.asp"-->) или после Server.Transfer.

Другие советы

URL-адрес. Предоставляет базовую часть URL-адреса без какой-либо строки запроса или дополнительной информации о пути.В качестве необработанного URL-адреса используйте HTTP_URL или UNENCODED_URL.

SCRIPT_NAME Виртуальный путь к выполняемому сценарию.Может использоваться для URL-адресов, ссылающихся на самих себя.

Видеть, http://www.requestservervariables.com/urlи /script_name для определений.

Возможно ли это в случае Server.Transfer?

В случае, когда вы выполняете server.transfer, я думать вы получите разные результаты

то естьSCRIPT_NAME будет, например./path/to.transferredfile.asp, тогда как URL-адрес останется как /path/to/file.asp

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top