Yo recientemente con la ayuda de LO resuelto mi htaccess rewriterule tema:

La reutilización de subdominio en una regla de reescritura

El resultado es que cuando alguien entra

whatever.example.com/anypage

en la dirección de la barra, el htaccess redirige automáticamente a

whatever.example.com/somepath/whatever/anypage

Lo que quiero hacer es encontrar un modo para que muestre solo whatever.example.com/anypage en la dirección de la barra con el contenido de whatever.example.com/somepath/whatever/anypage muestra.

En el post que he mencionado anteriormente, Jon Lin menciona con claridad los siguientes:

redirige siempre a cambio de lo que es en el navegador la dirección URL de la barra de

Sin embargo, yo conozco algunos muy frecuentes los casos de url rewritting que se muestran en la dirección de la barra digamos, por ejemplo:

example.com/article-1-15

pero en realidad muestra el contenido de

example.com/somepath/somepage.php?article=1&otherparam=15

Cómo se podría aplicar a mi caso? Yo realmente deseo tener una pequeña url, pero parece que me he perdido de algo.

InformationsquelleAutor Sebas | 2012-12-28

1 Comentario

  1. 2

    Usted puede intentar algo como esto:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI}  ^/([^/]+)$
    RewriteRule .*  http://whatever.example.com/somepath/whatever/%1 [L]
    

    Es mapa:

    http://whatever.example.com/anypage

    A un recurso en:

    http://whatever.example.com/somepath/whatever/anypage

    mostrando siempre en la barra de direcciones del navegador:

    http://whatever.example.com/anypage

    ACTUALIZADO

    Si lo es dinámico y es el mismo en la sustitución de URI, aquí hay otra opción:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST}  ([^/]+)\.example\.com.*
    RewriteCond %{REQUEST_URI}  ^/([^/]+)$
    RewriteRule .*  http://%1.example.com/somepath/%1/%2 [L]
    

    Esto funcionará siempre como «lo que sea», en la sustitución de la ruta de acceso son los mismos. Si no lo están, el último «lo que» tiene que ser codificado, como este:

    RewriteRule .*  http://%1.example.com/somepath/whatever/%2 [L]
    

    No hay otra manera como la dirección URL entrante no lo tiene.

    • «lo que sea» es dinámico, está seguro de su htaccess lo va a hacer?
    • Así, la única manera de estar seguro de que hace lo que usted necesita es prueba de ello.
    • no puedes ver tu htaccess nunca manija de la dinámica de los subdominios? Tal vez me equivoco, pero parece bastante obvio ya que estás codificar en el rewriterule
    • Lo que la regla está tratando de hacer es mantener la última carpeta /anypage como última carpeta. Eso es todo, así que los nombres de las carpetas o subdominios no son importantes.
    • Entiendo lo que usted dice en su comentario, así que he actualizado mi respuesta. Yo no lo veo de esa manera de su pregunta.
    • impresionante, déjame ver
    • el %1 se sustituye por index.php (estoy pidiendo si.php la página, por lo que debe ser un defecto directoryindex de mi php.ini) y el nombre del subdominio desaparece de la url. No hay rastro de la «si.php» bien, que debería ir al final en vez de %2 si la he entendido bien tu rewriterule.
    • El %1 es el «lo que sea» subdominio en el URI solicitado http://whatever.example.com/anypage y la %2 es el «anypage» carpeta en el mismo URI.
    • http://testacc.example.com/si.php redirige a http://index.php.example.com/path/index.php/
    • No hay index.php en las reglas, en mi respuesta, lo que no se puede redirigir a la URI en tu comentario porque de mis reglas. Lo he comprobado y tengo: http://testacc.example.com/si.php se redirige a http://testacc.example.com/somepath/testacc/si.php, que es lo que usted describe en su pregunta.
    • maldita sea, mi servidor tiene que tener algo impedir que se ejecute
    • Siempre puedes probarlo aquí, pero tal vez es la secuencia de comandos si.php que se está redirigiendo a http://index.php.example.com/path/index.php/.
    • Sólo en caso de que, es un redireccionamiento silencioso como usted lo pidió, por lo que la sustitución de URI no se muestre en la barra de direcciones del navegador. Para mostrarlo, R=301 tiene que ser añadido a la bandera L en la regla.
    • la eliminación de la r=301 hizo… gracias por su tiempo
    • Supongamos que tengo la URL Como http://www.admin.com/23445.zip que se redirigen automáticamente a http://www.admin.com/files/23445.zip donde 23445 será dinámicamente ..¿cuál será la regla, entonces?

Dejar respuesta

Please enter your comment!
Please enter your name here