/ / htaccess redirecciona si la URL no contiene alguna cadena como subdirectorio - .htaccess, redireccionar

Redireccionamiento de htaccess si la URL no contiene alguna cadena como subdirectorio - .htaccess, redireccionamiento

Estoy trabajando con un sitio web de django y necesito hacer una especie de declaración "si más" en el archivo htaccess.

si la persona va a http://itcvertebralcuritiba.com.br/blog, quiero redirigir al subdirectorio del servidor public_html / blog e ignorar todo el resto del código dentro del archivo htaccess, porque instala django y cambia las rutas.

este es el archivo htaccess actual: (instala las cosas de django)

RewriteEngine On
RewriteBase /
RewriteRule ^(dispatch.fcgi/.*)$ - [L]
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

RewriteCond %{HTTP_HOST} ^itccuritiba.pre-hw44.webservidor.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.itccuritiba.pre-hw44.webservidor.net$
RewriteRule ^/?$ "itcvertebralcuritiba.com.br" [R=301,L]

RewriteCond %{HTTP_HOST} ^itcvertebralcuritiba.pre-hw44.webservidor.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.itcvertebralcuritiba.pre-hw44.webservidor.net$
RewriteRule ^/?$ "http://itcvertebralcuritiba.com.br" [R=301,L]

Intenté hacer esto para redirigir: - estas 3 líneas a continuación es lo que probé:

RewriteCond %{HTTP_HOST} ^blog. [OR]
RewriteCond %{REQUEST_URI} ^/blog [NC]
RewriteRule ^ /blog/index.php [L]

RewriteEngine On
RewriteBase /
RewriteRule ^(dispatch.fcgi/.*)$ - [L]
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]

RewriteCond %{HTTP_HOST} ^itccuritiba.pre-hw44.webservidor.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.itccuritiba.pre-hw44.webservidor.net$
RewriteRule ^/?$ "itcvertebralcuritiba.com.br" [R=301,L]

RewriteCond %{HTTP_HOST} ^itcvertebralcuritiba.pre-hw44.webservidor.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.itcvertebralcuritiba.pre-hw44.webservidor.net$
RewriteRule ^/?$ "http://itcvertebralcuritiba.com.br" [R=301,L]

pero no funcionó, redirecciona pero con un error 500 (error interno del servidor).

¿Alguien puede ayudarme? ¡muchas gracias!

Respuestas

0 para la respuesta № 1

Lo primero es que quieres esas reglas con el R=301 reglas primero. Desea que sus redireccionamientos ocurran antes que sus reescrituras internas.

Lo segundo son sus bucles de reglas. El motor de reescritura ejecuta todas las reglas hasta que el URI deja de cambiar. En tu caso, sigues reescribiendo en el mismo lugar: /blog/index.php, incluso si la solicitud es ya /blog/index.php. Intente agregar algunas condiciones para evitar el bucle.

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^itccuritiba.pre-hw44.webservidor.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.itccuritiba.pre-hw44.webservidor.net$
RewriteRule ^/?$ "itcvertebralcuritiba.com.br" [R=301,L]

RewriteCond %{HTTP_HOST} ^itcvertebralcuritiba.pre-hw44.webservidor.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.itcvertebralcuritiba.pre-hw44.webservidor.net$
RewriteRule ^/?$ "http://itcvertebralcuritiba.com.br" [R=301,L]

RewriteCond %{REQUEST_URI} !^/blog/index.php
RewriteCond %{HTTP_HOST} ^blog. [OR]
RewriteCond %{REQUEST_URI} ^/blog [NC]
RewriteRule ^ /blog/index.php [L]

RewriteRule ^(dispatch.fcgi/.*)$ - [L]
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(.*)$ dispatch.fcgi/$1 [L]