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

Como escribir el htaccess?

Estas en el tema de Como escribir el htaccess? en el foro de Apache en Foros del Web. Hola a todos. LLevo 1 semana intentando configurar un archivo htaccess y no lo consigo y creo que debe ser sencillo. Quiero que http://www.miweb.com/?p=productos pase ...
  #1 (permalink)  
Antiguo 13/10/2011, 07:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Exclamación Como escribir el htaccess?

Hola a todos. LLevo 1 semana intentando configurar un archivo htaccess y no lo consigo y creo que debe ser sencillo.

Quiero que http://www.miweb.com/?p=productos pase a ser http://www.miweb.com/productos

Como se escribiría el archivo?
  #2 (permalink)  
Antiguo 14/10/2011, 04:16
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

He conseguido escribir esto pero no funciona:

Código PHP:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine on
  3.  
  4. #Urls amigables
  5.  
  6. RewriteCond %{SCRIPT_FILENAME} !-d  
  7. RewriteCond %{SCRIPT_FILENAME} !-f
  8.  
  9. RewriteRule ^(.*)/(.*)/$ menu.php?l=$1&x=$2 [L]

Tengo esta URL: www.miweb.com/menu.php?l=es&p=productos
y quiero que que salga: www.miweb.com/es/productos

Qué está mal en ese fichero??

Por favor, ayudenme!
  #3 (permalink)  
Antiguo 14/10/2011, 04:26
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

Prueba así:

Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteRule ^([^/]*)/([^/]*)$ /menu.php?l=$1&p=$2 [L]
  #4 (permalink)  
Antiguo 14/10/2011, 04:48
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

No sé si me está fallando el header o el htaccess.

En index.php tengo el siguiente codigo:

Código PHP:
Ver original
  1. header("Location: es/productos");

En el htaccess:
Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteRule ^([^/]*)/([^/]*)$ menu.php?l=$1&p=$2 [L]  (le he quitado la barra de delante de menu)

digamos que funciona, en el navegador sale: http://miweb.com/es/productos
pero la web sale como si no cargara el CSS
  #5 (permalink)  
Antiguo 14/10/2011, 04:52
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

¿Cuál es la página web? Para poder ver el error.
  #6 (permalink)  
Antiguo 14/10/2011, 05:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

aún no está subida, la tengo en local: /localhost/
  #7 (permalink)  
Antiguo 14/10/2011, 05:07
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

Cita:
Iniciado por cslbcn Ver Mensaje
aún no está subida, la tengo en local: /localhost/
Revisa que las rutas sean absolutas para que cargue el css desde cualquier parte de la web.
  #8 (permalink)  
Antiguo 14/10/2011, 05:17
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

A ver si mi planteamiento es incorrecto:

En index.php detecto el idioma del usuario. Si es español guardo en una variable ES. Si es italiano, IT.

Después hago un header a menu.php, donde se cargan las páginas de las diferentes secciones.

header("Location: menu.php?lang=".$idioma."&page=home");

Home es la página principal
Luego tengo otras páginas: productos, clientes, etc.

Cada vez que entro en una sección, la url queda así:

localhost/menu.php?lang=ES&page=productos
localhost/menu.php?lang=ES&page=clientes

La url que quiero que se muestre es:

para home: localhost/es
para las demás secciones: localhost/es/productos localhost/es/clientes locahost/es/contactar


Me entiendes?
  #9 (permalink)  
Antiguo 14/10/2011, 05:19
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

Sí, pero tú has dicho que no carga el estilo CSS, por eso te digo que compruebes si en cada página la ruta es la correcta.
  #10 (permalink)  
Antiguo 14/10/2011, 05:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

aunque cambie la ruta del CSS sigue sin funcionar. Digamos que aunque ponga en el navegador:
localhost/es/homeifdhsifhusd (con todos esos caracteres de más) me sale la misma página, la página inicial sin poderse cargar el estilo CSS
  #11 (permalink)  
Antiguo 14/10/2011, 05:38
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

Añade debajo de:
Código Apache:
Ver original
  1. RewriteEngine On

Código Apache:
Ver original
  1. RewriteBase /

Para que quede así:

Código Apache:
Ver original
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^([^/]*)/([^/]*)$ menu.php?l=$1&p=$2 [L]
  #12 (permalink)  
Antiguo 14/10/2011, 05:50
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

No funciona.

Está bien escrito esto:
header("Location: menu.php?lang=".$idioma."&page=home");

?
  #13 (permalink)  
Antiguo 14/10/2011, 05:59
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

Cita:
Iniciado por cslbcn Ver Mensaje
No funciona.

Está bien escrito esto:
header("Location: menu.php?lang=".$idioma."&page=home");

?
Yo diria que sí.

¿Puedes postear la parte donde carga el archivo.css del index.php y de una de las subpáginas donde utilizas el htaccess para redireccionar?
  #14 (permalink)  
Antiguo 14/10/2011, 06:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

Acabo de reiniciar el servidor y poner los archivos así:

en index.php
Código PHP:
Ver original
  1. $idioma = "es";
  2. header("Location: menu.php?l=".$idioma."&p=home");

en htaccess
Código PHP:
Ver original
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^([^/]*)/([^/]*)$ menu.php?l=$1&p=$2 [L]


Y me sigue saliendo en la barra de direcciones:
localhost/menu.php?l=es&p=home

Como si el htaccess no funcionara
  #15 (permalink)  
Antiguo 14/10/2011, 06:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

Y si en index.php escribo:

Código PHP:
Ver original
  1. $idioma = "es";
  2. header("Location: ".$idioma."/home");

En el navegador me sale: localhost/es/home pero como si no cargara el CSS
Y si escribo yo manuamente localhost/es/home4562

Me sale la misma página sin cargar estilos CSS


Muy muy extraño
  #16 (permalink)  
Antiguo 14/10/2011, 06:20
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

Copia el código donde cargas el archivo .css en el index.
  #17 (permalink)  
Antiguo 14/10/2011, 06:21
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

<link href="../css/menu.css" rel="stylesheet" type="text/css" />

He probado de poner /css/menu.css ../../css/menu.css etc..
  #18 (permalink)  
Antiguo 14/10/2011, 06:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

Las CSS las cargo en menu.php
  #19 (permalink)  
Antiguo 14/10/2011, 06:27
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Como escribir el htaccess?

Prueba con la ruta absoluta:

"http://localhost/css/menu.css"

Abre la ruta antes de probar en tu navegador y la ruta que funcione añádela al código.
  #20 (permalink)  
Antiguo 14/10/2011, 06:33
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

No funciona. Y cuando le doy a codigo fuente sale:


<link href="http://localhost/css/menu.css" rel="stylesheet" type="text/css" />


le hago click y me vuelve a aparecer la página menu.php sin el CSS
  #21 (permalink)  
Antiguo 17/10/2011, 02:03
 
Fecha de Ingreso: diciembre-2010
Ubicación: Murcia (España)
Mensajes: 6
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Como escribir el htaccess?

Hola cslbcn, te recomiendo que te leas este manual que te servirá para comprender cómo se hace lo que quieres hacer. Yo me lo leí y lo entendí perfectamente:

[URL]http://www.desarrolloweb.com/manuales/htaccess-para-urls-amigables.html[/URL]

Espero que te sirva, saludos
  #22 (permalink)  
Antiguo 17/10/2011, 02:10
 
Fecha de Ingreso: diciembre-2010
Ubicación: Murcia (España)
Mensajes: 6
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Como escribir el htaccess?

La regla que mejor te viene para el .htaccess sería la siguiente:

RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)\.html$ menu.php?l=$1&p=$2

Esta regla lo que hará será que cada vez que se haya escrito una url de tipo www.tuweb.com/algo1/algo2.html irá a menu.phpl=algo1&p=algo2


Saludos, espero que te sirva
  #23 (permalink)  
Antiguo 17/10/2011, 05:53
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

Gracias por la informacion.

Pero sigo con una duda.
En el header, tengo que poner la url con las variables o con la abreviatura?
  #24 (permalink)  
Antiguo 17/10/2011, 07:54
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Como escribir el htaccess?

Encontré la solución!

Código Apache:
Ver original
  1. Options +FollowSymLinks
  2. RewriteEngine on
  3.  
  4. #Urls amigables
  5. RewriteCond %{SCRIPT_FILENAME} !-d  
  6. RewriteCond %{SCRIPT_FILENAME} !-f
  7. RewriteRule ^(.*)/(.*)$ menu.php?l=$1&p=$2 [L]
  8.  
  9. #Errores
  10. ErrorDocument 404 /index.php

index.php
Código PHP:
Ver original
  1. $idioma = "es";
  2. header("Location: ./".$idioma."/");


Gracias a todos por la ayuda!!

Etiquetas: htaccess
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 12:03.