Redirección a un directorio
Hola!
Tengo la siguiente situación:
Un sitio web con un CMS (Joomla), que lo he situado en un directorio (/web/), en vez de en la raiz del dominio en el que está alojado.
Ahora tengo un /index.html con una redireccion html:
<code>meta HTTP-EQUIV="REFRESH" content="0; url=web/index.php"</code>
Que funciona correctamente, pero creo que no es lo mas adecuado.
En concreto no me gusta que al pasar un validador (XMTML, CSS, TAW, etc), me comprueban ese index.html que solo tiene la redirección, y que encima da errores en las pautas de accesibilidad WAI (en el TAW), por esa redirección.
Supongo tambien que para los buscadores no será lo mas optimo.
Pensaba que una redirección en .htaccess era lo que necesitaria, pero no se como hacerlo.
Si me podeis ayudar, muchas gracias!
Edu
kr0n
En la 1ª opción, añadiendo...
<fieldset>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ web/$1
</fieldset>
...te aseguras que sólo haga el Rewrite si no existe un fichero o un directorio con el nombre solicitado.
En la 2ª opción quizás sea más facil, ya que podrías hacer simplemente:
<code>RedirectTemp index.php http://www.dominio.com/web/index.php
</code>
Al menos en teoría. Como ya digo este Redirect modifica la barra de direcciones, con la idea de que el usuario se familiarice con la nueva ubicación de un elemento antiguo que se ha movido.
En la 3ª opción, con DirectoryIndex lo que haces es especificarle una lista de páginas index por defecto en las que mirar por orden. Asi que para lo que dices en tu último post creo que no serviría.
eemece2
Gracias a los tres,
Aunque no tengo claro una cosa :
Que ocurre con esas opciones con los demas directorios al nivel del que esta el CMS (/web)?:
/web
/elearning
/otrascosas
...
Mi intención es que solo se redija la petición que se hace al dominio (http://www.midominio.org) al directorio (/web), concretamente a http://www.midominio.org/web/index.php.
Y el resto que siga funcionando igual, sin modificaciones, por ejemplo:
http://www.midominio.org/elearning/index.php
Muchas gracias!
Edu
danielsandesign
En el .htaccess pones el directorio por defecto:
DirectoryIndex /web/
O si son varias opciones puedes hacerlo así, en orden de prioridad:
DirectoryIndex /web/ /web/index.html /web/index.php
kr0n
Con el Redirect que dice motorsex se muestra en la barra de direcciones la redirección que estas haciendo, eso según te interese o no. La opción si no quieres que el usuario perciba la redirección es con RewriteRule. Sino, la mejor opción es el Redirect porque indicas tanto al usuario como a los buscadores que esa dirección ha cambiado.
Si no especificas nada se considera un redirect temporal (302) de cara a los buscadores. Puedes usar RedirectTemp (302) o RedirectPermanent (301).
Usuario desconocido
Incluye esta directiva en tu fichero .htaccess
o en el httpd-conf de apache.
Redireccionar pagina
Redirect antigua.php http://www.dominio.com/nueva.html
Redireccionar directorio
Redirect /pepe http://www.dominio.com/manolito/
kr0n
Puedes probar con:
<code>
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ web/$1
</code>