2009-03-27 6 views
4

Je suis maintenant une application asp classique et en allant sur le code, je suis tombé sur deux lignes de code similaires:Request.ServerVariables() « URL » vs « SCRIPT_NAME »

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

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

Je ne comprends pas ... Quelle est la différence? deux d'entre eux ignorent l'URL de réécriture que j'ai mis en place qui met le dossier/chemin que le document racine (l'URL ci-dessus est réécrite pour « /to/file.asp »)

Plus d'info: Le site est déployé sur IIS 7

Répondre

3

Cela pourrait être un bug sous IIS 7.

Je ne pouvais pas Request.ServerVariables("URL") et Request.ServerVariables("SCRIPT_NAME") pour renvoyer des valeurs différentes. J'ai essayé les cas où ils ont été appelés à partir d'un fichier inclus (<!--#include file="file.asp"-->) ou après un Server.Transfer.

+0

peut-être qu'ils sont tous les deux conservés pour la rétrocompatibilité? – Jiaaro

+0

@Jim Robert, Je ne suis pas sûr d'être honnête. J'ai maintenant essayé différentes variantes (en appelant un sous/une fonction qui génère l'URL et SCRIPT_NAME) mais toujours, elles retournent toujours la même valeur. Encore une fois, cela est testé sous IIS 7. –

1

Est-ce peut-être là dans le cas de Server.Transfer?

Dans le cas où vous faites un Server.Transfer je pense que vous obtiendrez des résultats différents

à savoir SCRIPT_NAME serait par exemple /path/to.transferredfile.asp alors que l'URL demeurerait comme /path/to/file.asp

+1

Non, juste essayé. Il sera à la fois "/path/to.transferredfile.asp" après Server.Transfer() – Tomalak

7

URL Donne la partie de base de l'URL, sans aucune information de chaîne de requête ou de chemin supplémentaire. Pour l'URL brute, utilisez HTTP_URL ou UNENCODED_URL.

SCRIPT_NAME Chemin d'accès virtuel au script en cours d'exécution. Peut être utilisé pour les URL auto-référencées.

Voir, http://www.requestservervariables.com/url et/nom_script pour les définitions.

+3

Ce site est l'un des sites les moins explicatifs que j'ai jamais vus. On dirait plutôt bien. –

Questions connexes