ARR renvoie la règle de réécriture sortante du proxy pour les redirections

Je tente actuellement de mettre en place une preuve de concept pour mélanger diverses technologies sur un site Web afin de faciliter les migrations et d'append de la flexibilité. L'idée est de créer un site "mashup" derrière un proxy inverse ARI IIS 7.5.

Pour l'instant, le proxy inversé ARR transmet toute request à notre site principal. La request est la suivante:

client -> ARR: Get / ARR -> Server 1: Get / Server 1 -> ARR: 200: /index.htm ARR -> client: 200: /index.htm 

…jusqu'ici tout va bien.

Disons que je souhaite append un nouveau site (root d'un autre server) en tant que sous-site de mon site principal. une règle entrante simple fait l'affaire:

 <rule name="sub1" stopProcessing="true"> <match url="^mySubsite(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> <action type="Rewrite" url="http://server2/{R:1}" /> </rule> 

Les requests sont maintenant:

  client -> ARR: Get /mySubsite ARR -> Server 2: Get / Server 2 -> ARR: 200: /index.htm ARR -> client: 200: /index.htm 

… Toujours d'accord.

Le problème survient lorsque le site sur server2 envoie une redirection (p. Ex. Vers une page de connection). Dans le cas de SharePoint, il redirige l'user vers: /_layouts/Authenticate.aspx?Source=%2F … qui n'existe pas:

 client -> ARR: Get /mySubsite ARR -> Server 2: Get / Server 2 -> ARR: 301: /_layouts/Authenticate.aspx?Source=%2F ARR -> client: 301: /_layouts/Authenticate.aspx?Source=%2F client -> ARR: Get /_layouts/Authenticate.aspx?Source=%2F ARR -> client: 404: Not Found 

Est-ce que quelqu'un sait comment écrire la règle de sortie pour réécrire la réponse du server 2 "301: /_layouts/Authenticate.aspx?Source=%2F" à "301: / mySubsite/_layouts/Authenticate.aspx?Source=%2FmySubsite%2F "?

One Solution collect form web for “ARR renvoie la règle de réécriture sortante du proxy pour les redirections”

J'ai résolu cela en utilisant des sous-domaines. Donc au lieu de:

 www.mydomain.com/mysite1 www.mydomain.com/mysite2 

J'utilise:

 mysite1.mydomain.com mysite2.mydomain.com 

Cela signifie que tous les liens relatifs et les redirections fonctionnent toujours comme avant.

S'il y a vraiment besoin de réécrire l'en-tête de localization, consultez cette procédure pas à pas

  • Réécriture d'URL avec TomCat
  • Exim, réécrivez selon le routeur
  • .htaccess modifier les règles et redirect s'il y a .php dans l'url
  • Nginx réécrit avec Simple Machines Forum
  • nginx proxy_pass à différents backends en fonction de l'location / passage de l'URL remaniée
  • Nginx rewrite download le file php au lieu d'exécuter
  • HTTP / 1.1 301 déplacé en permanence de l'IIS pendant deux minutes
  • Créer un sous-domaine VHost & Forward
  • Règles de réécriture nginx pour lithium php framework
  • nginx rewrite ne fonctionne pas ?? il l'ignore simplement
  • Règle de rétablissement de localization Nginx correspondant à la valeur d'en-tête GeoIP
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.