2010-11-12 8 views
17

He modificado con éxito mi archivo .htaccess para eliminar barras diagonales en la mayoría de las páginas, pero me pregunto cómo puedo exentar mi página/directorio principal. Por ejemplo:Eliminar la barra diagonal usando .htaccess excepto la página de inicio/aterrizaje

domain.com/test/ vuelve a dirigir con éxito a domain.com/test

Sin embargo, cuando llegué a mi dominio se anexará el documento raíz

domain.com/ redirecciona al dominio. com/index.php

¿Hay alguna condición que pueda agregar para ignorar la raíz de la raíz de la barra diagonal para que no intente eliminar la barra diagonal y agregar mi secuencia de comandos predeterminada? Esto es lo que tengo hasta ahora:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^(.+)/$ 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

Respuesta

29

OK. Después de varios intentos de prueba y error, respondí mi propia pregunta.

La tercera línea denota que tiene que haber algo en el URI para realizar el redireccionamiento y no redirigir si el url solo contiene la barra inicial.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} (.*)$ 
RewriteRule ^(.+)/$ http://www.domain.com/$1 [R=301,L] 
+4

en lugar de 'http://www.domain.com/$1 'puedes usar' http: //www.% {HTTP_HOST}/$ 1' mejor. Entonces el usuario no necesita editar esa línea y hacer posibles errores. –

+2

La solución de @YH no funciona para sitios web en subdirectorios (ni para localhost, que no puede tener 'www.' ante sí mismo). Por ejemplo, 'localhost/web1/page1 /' se redirige de forma incorrecta a 'www.localhost/page1'. –

+1

no funciona en el caso del directorio –

9

¿Qué tal

RewriteEngine On 
RewriteRule ^(.*)/$ http://%{HTTP_HOST}/$1 
17

solicitud redirecciones para todas las URLs que terminan en un / a excepción de la raíz:

RedirectMatch 301 ^(.+)/$ $1 
+0

también maneja http/https igualmente –

+0

muy simple, pero funciona perfectamente. – vee

+0

He agregado este código en el archivo htaccess. Funciona bien. Pero mis archivos CSS no son de carga. – VijayS91

Cuestiones relacionadas