Foros del Web » Administración de Sistemas » Apache »

El .htaccess se volvio loco...

Estas en el tema de El .htaccess se volvio loco... en el foro de Apache en Foros del Web. en el archivo .htaccess tengo lo siguiente: RewriteEngine On RewriteCond %{HTTP_HOST} ^ www.dominio.com [NC] RewriteRule ^(.*)$ http://dominio.com/$1 [L,R=301] Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteRule ...
  #1 (permalink)  
Antiguo 18/12/2012, 10:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Exclamación El .htaccess se volvio loco...

en el archivo .htaccess tengo lo siguiente:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.dominio.com [NC]
RewriteRule ^(.*)$ http://dominio.com/$1 [L,R=301]


Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/(.*)/ detalle.php?titulo=$1&codigo=$2 [L]

************************************************** **************

ese es el .htaccess , tengo un subdominio http://subdominio.dominio.com

el problema es si ingreso a cualquier carpeta por ejemplo

http://subdominio.dominio.com/imagenes

me da el error:


Internal Server Error
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.



pero a las carpetas del dominio si puedo entrar:

http://dominio.com/imagenes


que es lo que esta pasando ?

Gracias.
  #2 (permalink)  
Antiguo 18/12/2012, 12:07
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: El .htaccess se volvio loco...

Men, no es necesario que especifiques con exactitud toda la ruta de tu web, te dejo un ejemplo de un htaccess funcional al 100%

RewriteEngine On
RewriteBase /
#RewriteBase: Especificas la ruta raiz de tu pagina, sistema, etc

RewriteCond %{REQUEST_URI} !(\.gif)|(\.jpg)|(\.png)|(\.css)|(\.js)|(\.php)$

RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?url=%1&%{QUERY_STRING} [L]
  #3 (permalink)  
Antiguo 18/12/2012, 12:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por BloodShadow Ver Mensaje
Men, no es necesario que especifiques con exactitud toda la ruta de tu web, te dejo un ejemplo de un htaccess funcional al 100%

RewriteEngine On
RewriteBase /
#RewriteBase: Especificas la ruta raiz de tu pagina, sistema, etc

RewriteCond %{REQUEST_URI} !(\.gif)|(\.jpg)|(\.png)|(\.css)|(\.js)|(\.php)$

RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?url=%1&%{QUERY_STRING} [L]
Gracias amigo pero igual con tu codigo no puedo ingresar a ninguna carpeta del subdominio y no se porque
  #4 (permalink)  
Antiguo 18/12/2012, 14:46
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: El .htaccess se volvio loco...

Si dentro de las carpetas tenes sistemitas o algunas cosas donde no existira una ruta legible guardad en una base de datos(si es q asi lo fuera) lo q tenes q hacer es forzar a php a q en esas carpetas no use rutas legibles, como? pues dentro de las carpetas que necesites acceder sin ruta legible mete un htaccess con este codigo:

RewriteEngine Off

Ya con esto podras acceder a las carpetas q quieras, obviamente a cada carpeta que quieras acceder asi tendras que meter ese htaccess :) Creo q con esto se te solventa tu problema jeje

Ejemplo: tenes tu proyecto en var/www/tuproyecto

tu proyecto acederia desde los dominios a esa ruta asi : www.tudominio.com

si quieres navegar tu funcionara el htaccess www.tudominio.com/categoriaX

pero si quieres entrar a la carpeta "admin por ejemplo, tendrias q, dentro de esa carpeta admin agregar un htaccess con el codigo q te puse antes y ya podras acceder a la carpeta asi: www.tudominio.com/admin en donde aca posiblemente lo q tengas al entrar es un login para el administrador :)

Recuerda que las rutas legibles son aparte para SEO, una medida de seguridad para que no vean las variables que manejas por medio del metodo $_GET. Entonces tu, al querer acceder a la carpeta /imagenes en realidad lo que busca es (depende tu programacion) una categoria con imagenes, una galeria, etc, no se ahi depende de como has programado pero nunca una carpeta fisica :).

Espero haber sacado alguna de tus dudas :)

Última edición por BloodShadow; 18/12/2012 a las 14:53
  #5 (permalink)  
Antiguo 18/12/2012, 15:32
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por BloodShadow Ver Mensaje
Si dentro de las carpetas tenes sistemitas o algunas cosas donde no existira una ruta legible guardad en una base de datos(si es q asi lo fuera) lo q tenes q hacer es forzar a php a q en esas carpetas no use rutas legibles, como? pues dentro de las carpetas que necesites acceder sin ruta legible mete un htaccess con este codigo:

RewriteEngine Off

Ya con esto podras acceder a las carpetas q quieras, obviamente a cada carpeta que quieras acceder asi tendras que meter ese htaccess :) Creo q con esto se te solventa tu problema jeje

Ejemplo: tenes tu proyecto en var/www/tuproyecto

tu proyecto acederia desde los dominios a esa ruta asi : www.tudominio.com

si quieres navegar tu funcionara el htaccess www.tudominio.com/categoriaX

pero si quieres entrar a la carpeta "admin por ejemplo, tendrias q, dentro de esa carpeta admin agregar un htaccess con el codigo q te puse antes y ya podras acceder a la carpeta asi: www.tudominio.com/admin en donde aca posiblemente lo q tengas al entrar es un login para el administrador :)

Recuerda que las rutas legibles son aparte para SEO, una medida de seguridad para que no vean las variables que manejas por medio del metodo $_GET. Entonces tu, al querer acceder a la carpeta /imagenes en realidad lo que busca es (depende tu programacion) una categoria con imagenes, una galeria, etc, no se ahi depende de como has programado pero nunca una carpeta fisica :).

Espero haber sacado alguna de tus dudas :)

BloodShadow Muchas Gracias por tu explicacion pero tengo una duda aun porque esa orden en el htccess afecta a mi subdominio. si se le esta ordenado que me cambie la url de una direccion en especifico ejemplo:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/(.*)/ detalle_ofertas.php?titulo=$1&codigo=$2 [L]

eso funciona bien puedo escrbiri la url que yo quiera siempre que en codigo ponga un codigo valido, porque me afecta el resto de carpetas y el subdominio eso es lo que no entiendo.

Muchas Gracias
  #6 (permalink)  
Antiguo 18/12/2012, 16:01
Avatar de BloodShadow  
Fecha de Ingreso: marzo-2010
Ubicación: El Salvador
Mensajes: 393
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: El .htaccess se volvio loco...

Huy mi hermano hasta ahi no llega mi conocimiento, lo siento :S teoricamente no se muchas cosas haha el tema de los htaccess es muy amplio, si no se te solvento el problema pues hasta aqui llego yo, mas no se que hacer lo sienteo de nuevo buuuu dame neg si keres haahah
  #7 (permalink)  
Antiguo 18/12/2012, 20:02
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por Mndrake Ver Mensaje
BloodShadow Muchas Gracias por tu explicacion pero tengo una duda aun porque esa orden en el htccess afecta a mi subdominio. si se le esta ordenado que me cambie la url de una direccion en especifico ejemplo:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/(.*)/ detalle_ofertas.php?titulo=$1&codigo=$2 [L]

eso funciona bien puedo escrbiri la url que yo quiera siempre que en codigo ponga un codigo valido, porque me afecta el resto de carpetas y el subdominio eso es lo que no entiendo.

Muchas Gracias
sencillamente porque tu espresión regular representa

comenzar con cualquier cosa seguida de una barra + otra cualquier cosa seguido de una barra y dicha barra no tiene porque ser precisamente el final de la cadena

debe de haber decenas de urls que cumplan la condición
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #8 (permalink)  
Antiguo 18/12/2012, 20:12
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por BloodShadow Ver Mensaje
Huy mi hermano hasta ahi no llega mi conocimiento, lo siento :S teoricamente no se muchas cosas haha el tema de los htaccess es muy amplio, si no se te solvento el problema pues hasta aqui llego yo, mas no se que hacer lo sienteo de nuevo buuuu dame neg si keres haahah
BloodShadow Muchas Gracias si me ayudo tu respuesta en alguna manera muchas graicias por tu tiempo
  #9 (permalink)  
Antiguo 18/12/2012, 20:14
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por emprear Ver Mensaje
sencillamente porque tu espresión regular representa

comenzar con cualquier cosa seguida de una barra + otra cualquier cosa seguido de una barra y dicha barra no tiene porque ser precisamente el final de la cadena

debe de haber decenas de urls que cumplan la condición
Saludos

Hola emprear es posible que me indiques de que manera podría optimizar ese codigo

pense que era suficiente decirle el archivo en este caso detalle_oferta.php?.... para que solo aplicara en ese archivo pero ahora veo que es así.


Gracias.
  #10 (permalink)  
Antiguo 18/12/2012, 21:00
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: El .htaccess se volvio loco...

algo asi

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^ofertas/(.*)/(.*)$ /detalle_ofertas.php?titulo=$1&codigo=$2 [L]

y tus links

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Catálogo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <p>
  8. <a href="/ofertas/camisa/5657">Camisa</a><br />
  9. <a href="/ofertas/remera/4533">Remera</a><br />
  10. </p>
  11. </body>
  12. </html>


detalle_ofertas.php

Código PHP:
Ver original
  1. Ofertas<br>
  2. <?php
  3. echo "Producto: " . $_GET['titulo'];
  4. echo "<br>";
  5. echo "Codigo: " . $_GET['codigo'];
  6. ?>

/ofertas no es una carpeta real sino que actua como un prefijo

demo:
http://mr8.emprear.com/catalogo.php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #11 (permalink)  
Antiguo 18/12/2012, 21:12
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por emprear Ver Mensaje
algo asi

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^ofertas/(.*)/(.*)$ /detalle_ofertas.php?titulo=$1&codigo=$2 [L]

y tus links

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>Catálogo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. </head>
  7. <p>
  8. <a href="/ofertas/camisa/5657">Camisa</a><br />
  9. <a href="/ofertas/remera/4533">Remera</a><br />
  10. </p>
  11. </body>
  12. </html>


detalle_ofertas.php

Código PHP:
Ver original
  1. Ofertas<br>
  2. <?php
  3. echo "Producto: " . $_GET['titulo'];
  4. echo "<br>";
  5. echo "Codigo: " . $_GET['codigo'];
  6. ?>

/ofertas no es una carpeta real sino que actua como un prefijo

demo:
http://mr8.emprear.com/catalogo.php

Saludos
Muchas Gracias emprear por el ejemplo

sin embargo se que la carpeta ofertas/ no existe pero en mi caso esa carpeta

http://www.dominio.com/este-seria-el...-pagina/123456


por lo cual no puedo definir una carpeta en el htacces
  #12 (permalink)  
Antiguo 18/12/2012, 21:18
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por Mndrake Ver Mensaje
Muchas Gracias emprear por el ejemplo

sin embargo se que la carpeta ofertas/ no existe pero en mi caso esa carpeta

http://www.dominio.com/este-seria-el...-pagina/123456


por lo cual no puedo definir una carpeta en el htacces
No entiendo que me querés decir, ¿que justamente tenés una carpeta llamada ofertas?
si es eso sencillamente cambiás la regla por otra cosa
Código Apache:
Ver original
  1. RewriteRule ^nuestras_ofertas/(.*)/(.*)$ /detalle_ofertas.php?titulo=$1&codigo=$2 [L]
y corregís los links por supuesto
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #13 (permalink)  
Antiguo 18/12/2012, 22:12
 
Fecha de Ingreso: septiembre-2010
Mensajes: 78
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: El .htaccess se volvio loco...

Cita:
Iniciado por emprear Ver Mensaje
No entiendo que me querés decir, ¿que justamente tenés una carpeta llamada ofertas?
si es eso sencillamente cambiás la regla por otra cosa
Código Apache:
Ver original
  1. RewriteRule ^nuestras_ofertas/(.*)/(.*)$ /detalle_ofertas.php?titulo=$1&codigo=$2 [L]
y corregís los links por supuesto
SAludos

emprear lo que quiero decir es que quiero usar como los peramalinks de wordpress o sea en cada oferta se va a ver en el link el titulo de la pagina ejemplos:

http://www.dominio.com/las-mejores-o...-de-verano/123

o este:

http://www.dominio.com/los-zapatos-d...s-modernos/321


o sea se divide en 3 bloques


#1 el dominio www.dominio.com

#2 el titulo de la pagina www.dominio.com/titulo-de-la-pagina

#3 el codigo que trae los datos www.dominio.com/titulo-de-la-pagina/123

me explico emprear ?

Etiquetas: dominio, htaccess, php, rewriterule
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:27.