Redirección 301 htaccess (ayuda)

  • Autor Autor CristJian
  • Fecha de inicio Fecha de inicio
C

CristJian

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
hola, estaba tratando de hacer mi archivo .htaccess para urls amigables pero tengo un problema, por el momento he logrado implementar la opción de urls amigables pero por ejemplo al momento de redireccionar mi web de
Insertar CODE, HTML o PHP:
www.example.com/articulo/12
y si le quito el www y vuelvo a recargar la página me actualiza de esta forma
Insertar CODE, HTML o PHP:
www.example.com/articulo.php?id=12
cómo se podría arreglar ese problemita??

he intentado usar el redirection pero la verdad no se muy bien como meterle por que lo he intentado y me sale todo el directorio de mi servidor :/

Ayuda por favor, gracias
 
Última edición:
En este caso yo entiendo que tienes el problema que la redireccion a www no te funciona bien y te "rompe" el rewrite de las urls bonitas.
Yo la redireccion www no te la recomendaria que la hicieras en el .htaccess sino en el vhost (si puedes claro):

Insertar CODE, HTML o PHP:
<VirtualHost *:80>
        ServerName tuhost.com
        Redirect permanent / http://www.tuhost.com/
</VirtualHost>
 
Hola SirLouen, gracias por contestar, por lo que leí en el host que tengo dice que el vhost sólo se puede manipular en un servidor dedicado, yo uso host-gator y tengo una cuenta shared, no sé si se pueda modificarlo allí Apache Virtual Host « HostGator.com Support Portal
 
Última edición:
Hola SirLouen, gracias por contestar, por lo que leí en el servidor host que tengo dice que el vhost sólo se puede manipular en un servidor dedicado, yo uso host-gator y tengo una cuenta shared, no sé si se pueda modificarlo allí Apache Virtual Host « HostGator.com Support Portal

solo edita tu .htaccess para que solo use WWW... y si alguien accede sin WWW, redireccione al WWW.

PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
eso te lo soluciona!
 
Gracias clicklow, acabo de modificarlo tal como lo mensionaste pero sigue con el mismo inconveniente 🙁 tal vez no fui muy específico, por ejemplo, en el index si funciona la redirección de sin www a con www, pero el problema es en los otros archivos, por ejemplo articulo.php, categoría.php, etc... con las urls limpias queda lo siguiente:
HTML:
www.example.com/articulo/563
pero al momento de quitarle el www en alguna de esas páginas y volver a recargarla aparece lo siguiente

HTML:
www.example.com/articulo.php?id=563

ese es el inconveniente que no puedo superar, que redireccione nuevamente a
HTML:
www.example.com/articulo/563
con las urls limpias
 
Última edición:
Gracias clicklow, acabo de modificarlo tal como lo mensionaste pero sigue con el mismo inconveniente 🙁
PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sitio\.com$ [NC]
RewriteRule ^(.*)$ http://www.sitio.com/$1 [R=301,QSA,L]

otra cosa... este code o el anterior que te puse, tiene que estar arriba del todo en .htaccess... sino jamas funcionaria...
 
PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sitio\.com$ [NC]
RewriteRule ^(.*)$ http://www.sitio.com/$1 [R=301,QSA,L]

otra cosa... este code o el anterior que te puse, tiene que estar arriba del todo en .htaccess... sino jamas funcionaria...

Muchas, muchísimas gracias, la verdad por ese pequeño detalle no me hubiera funcionado nunca!! jejeje ese código estaba al final de mi archivo .htacces en serio muchas gracias clicklow 🙂
 
Pues si te soy sincero, nunca me habia fijado en este detalle. Me rendi, y como siempre uso VPS desde entonces, ya no me complico la vida y uso redirecciones en Apache
Buen apunte cicklow
 
PHP:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sitio\.com$ [NC]
RewriteRule ^(.*)$ http://www.sitio.com/$1 [R=301,QSA,L]

otra cosa... este code o el anterior que te puse, tiene que estar arriba del todo en .htaccess... sino jamas funcionaria...

otra pregunta más clicklow, disculpa la molestia, por ejemplo cómo se puede hacer redirecciones de este tipo, si tengo los parámetros en la url, en este caso el id poniendo por ejemplo este mismo tema

HTML:
http://forobeta.com/php/422495-redireccion-301-htaccess-ayuda.html

si le cambio el número del id (422495) a cualquier otro me redirecciona cambiando los parámetros adicionales del título en la url, en cambio en mi proyecto, si le cambio el id cambia la información del contenido de la página pero sigue con los mismos parámetros en la url y no redirecciona con el resto de la información.

por ejemplo

HTML:
http://example.com/artículo/123-motores-de-conductividad

da lo mismo si le cambio el parametro del id pero no redirecciona con la otra información adicional en el url

HTML:
http://example.com/artículo/16354123-motores-de-conductividad

gracias
 
es que depende del que maneja el script... si le pasas un id muestra 1 contenido, si le cambias a otro mostrara el contenido de ese id...
 
es que depende del que maneja el script... si le pasas un id muestra 1 contenido, si le cambias a otro mostrara el contenido de ese id...

claro, el contenido de la página si la cambia, el problema es con los parámetros de la url, por ejemplo, si cambias solamente el id de esta misma página en el explorador "php/422495-redireccion-301-htaccess-ayuda.html" y se lo cambias a "422496" cambian todos los parámetros de la url youtube/422496-estadisticas-diarias-nuevo-proyecto-youtube.html y eso es que he buscado en la web para poder aplicarlo pero no encuentro, ¿eso se hace con el mismo htaccess?
 
claro, el contenido de la página si la cambia, el problema es con los parámetros de la url, por ejemplo, si cambias solamente el id de esta misma página en el explorador "php/422495-redireccion-301-htaccess-ayuda.html" y se lo cambias a "422496" cambian todos los parámetros de la url youtube/422496-estadisticas-diarias-nuevo-proyecto-youtube.html y eso es que he buscado en la web para poder aplicarlo pero no encuentro, ¿eso se hace con el mismo htaccess?

no lo hace .htaccess lo hace un php a eso... digamos que index.php esta manejando todo, entonces si entraron a /php/1234-algo.html y el id 1234 no es de esa categoria, o el titulo o lo que sea, redireccionaria a la url verdadera... el .htaccess jamas podria saber sobre ID... solo maneja comandos y parametros...
 
no lo hace .htaccess lo hace un php a eso... digamos que index.php esta manejando todo, entonces si entraron a /php/1234-algo.html y el id 1234 no es de esa categoria, o el titulo o lo que sea, redireccionaria a la url verdadera... el .htaccess jamas podria saber sobre ID... solo maneja comandos y parametros...

oh... comprendo, y en este caso qué podría hacer? me refiero a que mi sitio no está manejado solamente por el index sino por scripts separados, hay algún tutorial que me puedas recomendar, o exactamente que debería buscar para poder implementar eso? muchas gracias
 
oh... comprendo, y en este caso qué podría hacer? me refiero a que mi sitio no está manejado solamente por el index sino por scripts separados, hay algún tutorial que me puedas recomendar, o exactamente que debería buscar para poder implementar eso? muchas gracias

tutorial ninguno... que yo sepa... mas que nada son consultas a la base de datos, tendrias que consultar en la base de datos a ver si ese ID que te estan pasando corresponde a la categoria o titulo, si no corresponde, usas una redireccion 301 desde php a la url real.
 
tutorial ninguno... que yo sepa... mas que nada son consultas a la base de datos, tendrias que consultar en la base de datos a ver si ese ID que te estan pasando corresponde a la categoria o titulo, si no corresponde, usas una redireccion 301 desde php a la url real.

Gracias cicklow... estaré revisando sobre eso 🙂 saludos!
 
Excelente no sabia de esto, siempre hay algo que aprender. saludos.
 
Atrás
Arriba