microsoft - portal azure web
Reescribir una URL en una aplicaciĆ³n web de Azure (3)
Tengo una regla de enrutamiento de comodín simple que quiero aplicar para mi aplicación web de Azure.
<rule name="MyRule">
<match url="*" />
<action type="Rewrite" url="/index.html" />
</rule>
¿Tengo alguna opción aquí dado que no puedo RDP en la máquina y jugar con IIS? Este no es un sitio web ASP.Net, es una simple aplicación SPA.
Necesita crear un archivo web.config en su carpeta wwwroot y colocar allí las entradas de configuración relevantes.
Aquí hay un ejemplo de una regla web.config, para darle una idea de cómo debería verse.
El siguiente ejemplo redirige el dominio predeterminado * .azurewebsites.net a un dominio personalizado (a través de http://zainrizvi.io/2016/04/07/block-default-azure-websites-domain )
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect rquests to default azure websites domain" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^yoursite/.azurewebsites/.net$" />
</conditions>
<action type="Redirect" url="http://www.yoursite.com/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Si desea realizar reescrituras reales (no redirecciones), no olvide habilitar ARR con el archivo applicationHost.xdt puesto en la carpeta del sitio con el siguiente contenido:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />
<rewrite>
<allowedServerVariables>
<add name="HTTP_ACCEPT_ENCODING" xdt:Transform="Insert" />
<add name="HTTP_X_ORIGINAL_HOST" xdt:Transform="Insert" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</configuration>
Si simplemente desea que todas las URL que se resuelven en este servidor y sitio redirijan a index.html
, puede usar esta sección de reescritura:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="SPA">
<match url=".*" />
<action type="Rewrite" url="index.html" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Esto es muy similar a lo que tiene, excepto algunas correcciones de sintaxis menores, por ejemplo, el patrón debe ser ". *" Y el objetivo de reescritura de URL simplemente "index.html". Tenga en cuenta que esto significa que se reescribirán TODAS las URL de su sitio, incluso para otros recursos como archivos CSS y JS, imágenes, etc. Por lo tanto, será mejor que busque recursos de otros dominios.