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

  • Comment écrire un RewriteRule pour correspondre à un file non existant?
  • Comment redirect les pages d'un sous-directory jusqu'à un niveau vers le directory racine
  • Publication du directory Nginx
  • Comment réécrire la partie de domaine de Set-Cookie dans un proxy inverse nginx?
  • IIS Reverse Proxy vers un Jetty Server
  • Corrigez la syntaxe de réécriture pour supprimer index.php
  • nginx 0.7.65 réécrire ne fonctionne pas pour les double barre oblique?
  • Boite apache Mod_rewrite insensible pour une seule règle
  • Apache mod_rewrite ajoutant une barre oblique supplémentaire à la fin de l'URL
  • Réérez une url à une nouvelle URL et envoyez la nouvelle URL à un script PHP
  • Sous-domaine de réécriture de IIS 7 pour pointer vers un port spécifique
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.