Estamos cambiando nuestro nombre de dominio y este está destinado a trabajar para aplicaciones independientes. En el archivo de host virtual en Apache el DocumentRoot /var/www/sitio web/html, no en /var/www/ejemplo/html como en este bloque:

Alias /apps/dept /var/www/example/html/apps/dept
<Directory "/var/www/example/html/apps/dept/">
   Options FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>

Pongo una .htaccess en el directorio /var/www/ejemplo/html/apps/dept directorio de la siguiente manera:

 RewriteEngine On
 RewriteBase /apps/dept/
 RewriteCond %{HTTP_HOST} ^example.orgname.state.tx.us/apps/dept [NC]
 RewriteRule ^(.*)$ http://example.orgname.texas.gov/apps/dept/$1 [L,R=301]

Este parece seguir lo que se recomienda aquí, http://httpd.apache.org/docs/current/mod/mod_rewrite.html y Apache : Cómo Utilizar el Motor de Reescritura en el Interior de Alias. Veo que no hay resultados. El nuevo dominio tiene un virtual host de configuración en el VH archivo, también. Esta misma base de reescritura de obras para nuestro sitio web de Drupal que no utilice un alias. Qué cambios son necesarios para que el nombre de dominio reescrito con un sufijo de ruta de acceso de la aplicación? Es el RewriteBase incorrecta?

Thx.

InformationsquelleAutor edroms | 2013-12-02

2 Comentarios

  1. 2

    Así que usted sólo desea redirigir /apps/dept/, ¿correcto? Esto debería funcionar. El lugar es como un .htaccess o en la configuración de Apache para example.orgname.state.tx.us y todo debería funcionar como se esperaba.

    RewriteEngine on
    RewriteRule ^/apps/dept/(.*)$ http://example.orgname.texas.gov/apps/dept/$1 [NC,L,R=301]
    

    Así que ahora, ninguna de las solicitudes de ir a esta dirección de

    http://example.orgname.state.tx.us/apps/dept/
    

    Ahora va a ir a esta URL:

    http://example.orgname.texas.gov/apps/dept/
    

    Y cualquier solicitud de parámetros a la derecha de la URL se pasa así.

    EDITAR Acabo de releer lo que escribí aquí:

    Pongo una .htaccess en el directorio /var/www/ejemplo/html/apps/dept directorio
    de la siguiente manera.

    La .htaccess he descrito anteriormente debe ser colocado en /var/www/example/html/ y no en el /apps/dept subdirectorio.

    Pero si quieres el mismo comportamiento de un .htaccess colocado en /apps/dept, a continuación, utilice esto:

    RewriteEngine on
    RewriteRule ^(.*)$ http://example.orgname.texas.gov/apps/dept/$1 [NC,L,R=301]
    

    De esta manera cualquier petición de /apps/dept va a example.orgname.texas.gov/apps/dept/ incluyendo subdirectorios de /apps/dept como /apps/dept/test_app1, /apps/dept/test_app2 o /apps/dept/test_app3.

    O tal vez probar esto:

    RewriteEngine on
    RewriteRule (.*)$ http://example.orgname.texas.gov/apps/dept/$1 [NC,L,R=301]
    

    Nota que me quita el ^, que obligaría a la RewriteRule para que coincida con el comienzo de la URL.

    • Me gustaría redirigir las aplicaciones que están en los directorios por debajo de la /apps/dept/ directorio.
    • Cuando te refieres a «debajo de» ¿a qué te refieres? Se le redirigirá a cualquier cosa, desde http://example.orgname.state.tx.us/apps/dept/ a http://example.orgname.texas.gov/apps/dept/, incluidos los directorios contenidos en ese directorio. Por favor aclarar la cuestión de si estoy malentendido.
    • La esperanza de incluir estos directorios: ejemplo.en.estado.tx.nosotros/apps/dept/myapp example.on.texas.gov/apps/dept/myapp. Hay alrededor de 10 aplicaciones en el departamento dir.
    • Sí, las redirecciones como describo va a enviar nada de /apps/dept/ y debajo de eso, como /apps/dept/myapp para el nuevo nombre de host. El 100% de nada a la derecha de la URL correctamente reescrito & redirigido. Mira mis ediciones a entender.
    • Gracias. He intentado un copia/pega de la anterior .htaccess contenido en la /apps/dept/ dir y esta devuelve example.on.texas.gov/var/www/example/html/apps/dept/… en el cuadro de dirección URL del navegador. Se parece a la inversa alias que está en ella. Tan de cerca.
    • Mi mal. Se me olvidó añadir el http:// a la final de la dirección URL en la parte delantera de example.orgname.texas.gov/apps/dept/ pero debería ser corregido ahora. Mira mis ediciones & inténtelo de nuevo.
    • Funciona para el /apps/dept/ directorio pero no para las aplicaciones en los subdirectorios.
    • Tal vez las aplicaciones en los subdirectorios tienen codificados caminos? Quién sabe. Basado en nuestra pregunta original, estas redirecciones & reescribe debería funcionar.
    • Estás en lo correcto. Esta solución funciona y este problema se ha resuelto. Gracias.
    • Solución se ejecuta todos los apache solicitudes de archivos de host dentro de la ruta de acceso a través de la redirección de la regla. Hay un impacto en el rendimiento en esto, en lugar de enviar sólo orgnm\.tx\.nos solicitudes a través de la regla? Hay VH config para el nuevo dominio orgnm.texas.gov, así que no hay necesidad para atrapar a aquellos. Solo un presentimiento.
    • «Hay un impacto en el rendimiento en esto…» Nunca había tenido un problema con esto cuando lo he hecho para los sitios con cientos, si no miles de enlaces. Si hay un impacto en el rendimiento, es insignificante en el mejor.

  2. 0

    Usted no puede coincidir con URI de la Solicitud en %{HTTP_HOST} variable, coincide con sólo el nombre de dominio. Chang su regla:

     RewriteEngine On
     RewriteBase /apps/dept/
    
     RewriteCond %{HTTP_HOST} ^example\.orgname\.state\.tx\.us$ [NC]
     RewriteRule ^(.*)$ http://example.orgname.texas.gov/apps/dept/$1 [L,R=301]
    
    • Esto funciona para el /apps/dept/ directorio sólo, pero no para los directorios bajo dept. Es allí una manera de tomar el cuidado de todas las app dirs bajo el dpto sin hacer y .htaccess para cada aplicación?

Dejar respuesta

Please enter your comment!
Please enter your name here