No entiendo nada acerca de IIS, pero estoy tratando de resolver este problema de la reorientación de todos los visitantes domain.com/page a domain.com/page.html

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.webServer>
    <rewrite>
          <rewriteMaps>
              <rewriteMap name="StaticRedirects">
                  <add key="/page" value="/page.html" />
              </rewriteMap>
            </rewriteMaps>
      </rewrite>
  </system.webServer>
</configuration>

Un par de problemas:

  1. No sé dónde poner el archivo. Hay un Usuario directorio raíz, y un directorio htdocs, he intentado tanto, no hay alegría.
  2. Ni siquiera sé si la cuenta puede hacer modificaciones, estoy tratando de averiguarlo.
  • Siempre, aunque no los puedo usar…pero para el futuro, o tal vez para ayudar a los demás 🙂
InformationsquelleAutor J. Martin | 2010-12-10

3 Comentarios

  1. 110

    1) Su web existente.config: se han declarado reescribir mapa .. pero no se han creado las reglas que se van a utilizar. RewriteMap en su’ propia no hace absolutamente nada.

    2) a Continuación se muestra cómo se puede hacer (no utilizar la reescritura de los mapas, reglas sólo, lo cual está bien para la pequeña cantidad de reescribe/redirecciones):

    Esta regla SOLO EXACTA de reescritura (redirect interno) /page a /page.html. Dirección URL en el navegador se mantendrá sin cambios.

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="SpecificRewrite" stopProcessing="true">
                    <match url="^page$" />
                    <action type="Rewrite" url="/page.html" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>

    Esta regla #2 va a hacer lo mismo que el anterior, pero va a hacer redirección 301 (Redirección Permanente), donde la URL cambiará en el navegador.

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="SpecificRedirect" stopProcessing="true">
                    <match url="^page$" />
                    <action type="Redirect" url="/page.html" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>

    Regla #3 intentará ejecutar la reescritura de URL si hay tal archivo .extensión html (es decir, para /page se compruebe si /page.html existe, y si lo hace, entonces reescribir ocurre):

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="DynamicRewrite" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}\.html" matchType="IsFile" />
                    </conditions>
                    <action type="Rewrite" url="/{R:1}.html" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
    • Estaba tratando de entender estos mapas y su respuesta ayudado mucho. Gracias. Mi +1
    • Creo que Tomek dio solución correcta un poco: sólo alteran el tuyo: añadir <conditions><add input="{HTTPS}" pattern="off" /></conditions> y tal vez de usar ^register\.aspx$ (nótese el carácter \ – esto asegurará que sólo register.aspx será redirigido, y no register2aspx etc.). También, asegúrese de que URL Rewrite Module está instalado (es independiente de descarga = no venían con IIS de forma predeterminada).
    • u me puede ayudar para stackoverflow.com/questions/19904849/…
    • Eso es diferente: Es la Reescritura de URL módulo de aquí, mientras que el tuyo es real .NET config (que funciona un poco diferente, AFAIK, y tiene matices, que no estoy familiarizado con).
    • ¿tienes alguna muestra completa de ejemplo para arriba, así que yo debería tratar? soy nuevo en la dirección url rewritting módulo así que…!
    • estoy tratando de url rewritting con cadena de Consulta, pero no obtener el éxito que me ayude plz ` <asp:HyperLink ID=»btnAdd» runat=»server» Text=»Agregar Cliente» CssClass=»button1 negro» NavigateUrl=»EditClient.aspx/0″></asp:HyperLink>` y de configuración web rul es ` <reescribir> <reglas> <nombre de la regla=»Reescritura de Artículos»> <partido url=»^EditClient.aspx/([0-9])» /> <tipo de acción=»Reescribir» url=»EditClient.aspx?ID={R:1}» /> </regla> </rules> </reescribir>` cómo mostrar url linke EditClient.aspx/0 o algo por el id numérico que me ayude plz mi Ca bloque, por lo que pedimos Que

  2. 13

    Sólo quería apuntar una cosa que falta en LazyOne la respuesta (me acabo comentó en virtud de la respuesta, pero no tienen suficiente rep)

    En la regla #2 de redirección permanente hay algo que falta:

    redirectType="Permanent"

    Así regla #2 debería tener este aspecto:

    <system.webServer>
        <rewrite>
            <rules>
                <rule name="SpecificRedirect" stopProcessing="true">
                    <match url="^page$" />
                    <action type="Redirect" url="/page.html" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>

    Editar

    Para obtener más información sobre cómo usar la Reescritura de URL Módulo de ver este excelente documentación: Reescritura de URL de Referencia de la Configuración del Módulo

    En respuesta a @kneidels pregunta de los comentarios; A coincidir con la url: topic.php?id=39 algo como lo siguiente podría ser utilizado:

    <system.webServer>
      <rewrite>
        <rules>
          <rule name="SpecificRedirect" stopProcessing="true">
            <match url="^topic.php$" />
            <conditions logicalGrouping="MatchAll">
              <add input="{QUERY_STRING}" pattern="(?:id)=(\d{2})" />
            </conditions>
            <action type="Redirect" url="/newpage/{C:1}" appendQueryString="false" redirectType="Permanent" />
          </rule>
        </rules>
      </rewrite>
    </system.webServer>

    Esto coincidirá con topic.php?id=ab donde a es cualquier número entre 0-9 y b también es cualquier número entre 0-9.
    A continuación, le redirigir a /newpage/xy donde xy viene de la url original.
    Yo no lo he probado, pero debería funcionar.

    • Hey. Esta solución funciona muy bien para statis archivos. ¿Cómo se ve con un partido url: match url="topic.php?id=39" ?
    • Acabo de actualizar la respuesta, a ver si eso ayuda
    • +1 para proporcionar el enlace a la iis.net documentación ( que veo es redirigido ahora a docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/… )
  3. 10

    Intentado esta regla, y se trabajó con el hosting de GoDaddy, ya que ellos ya han Microsoft Reescritura de URL módulo instalado para cada IIS 7 cuenta.

    <rewrite>
      <rules>
        <rule name="enquiry" stopProcessing="true">
          <match url="^enquiry$" />
          <action type="Rewrite" url="/Enquiry.aspx" />
        </rule>
      </rules>
    </rewrite>
    • Gracias a ti mencionar que el módulo está instalado me di cuenta de que no me la instala y se las arregló para superar mi problema 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here