Refeccionar URL No amigables hacia Amigables - Contenido duplicado .htaccess

Estado
No está abierto para más respuestas.
Mensajes
140
Puntuación de reacción
0
Perdón. El titulo esta mal. es Redireccionar.

Buenas. Me estoy volviendo loco. Os contare que quiero hacer.

He creado una web en php y MSQL y ahora quiero convertir las URL feas donde están las variables GET a URL amigables es decir.

Código:
dominio.com/?pag=5
dominio.com/pag/5

Perfecto. Para hacer eso, solo he tenido que agregar esta linea.

Código:
RewriteRule ^pag/(.*)$ ?pag=$1
RewriteRule ^pag/(.*)$ indexp.php?pag=$1

Cualquiera de las 2 me sirve perfectamente. Pero que sucede. Pues que tanto si entro a una como a otra. Me llevan al mismo lugar y por lo tanto si google me indexa las 2, ya tengo contenido duplicado.

Se podría hacer mediante php o mediante canonical. Pero yo creo que es mejor hacerlo directamente por el .htaccess

La pregunta es.

Como podria hacer que cuando entres dominio.com/?pag=5 se redireccione con un 301 hacia dominio.com/pag/5

Espero vuestra ayuda. Gracias.
 
Última edición:

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
El canonical en tu caso es la única opción para el SEO, Google no va a leer tu htaccess y detectar que prefieres que no se muestren parámetros en tus url, por lo que lo verá como contenido duplicado.

En cuanto a eliminar la url con parámetros lo veo un poco inútil, simplemente añade canonical, añade rewrite y nadie tendrá por que acceder a la url natural...

Fíjate en cualquier CMS que facilite rewrite, por ejemplo wordpress, puedes habilitar el que más te guste, pero siempre se podrá acceder desde urls naturales
 
Mensajes
140
Puntuación de reacción
0
El canonical en tu caso es la única opción para el SEO, Google no va a leer tu htaccess y detectar que prefieres que no se muestren parámetros en tus url, por lo que lo verá como contenido duplicado.

En cuanto a eliminar la url con parámetros lo veo un poco inútil, simplemente añade canonical, añade rewrite y nadie tendrá por que acceder a la url natural...

Fíjate en cualquier CMS que facilite rewrite, por ejemplo wordpress, puedes habilitar el que más te guste, pero siempre se podrá acceder desde urls naturales

Gracias por el dato. Pero de verdad que no puedo hacer una redireccion hacia la URL amigable? me parece raro.

Seria algo así.

RewriteRule ^?pag=(.*) http://dominio.com/page/$1 [R=301,L]

Pero no me funciona. En verdad la url Natural con variables Get seguirá funcionando pero se le redirecciona hacia la que quiero la amigable.

No se yo pienso que si que se puede hacer.
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Gracias por el dato. Pero de verdad que no puedo hacer una redireccion hacia la URL amigable? me parece raro.

Seria algo así.


Pero no me funciona. En verdad la url Natural con variables Get seguirá funcionando pero se le redirecciona hacia la que quiero la amigable.

No se yo pienso que si que se puede hacer.

Prueba con esto
Código:
RewriteEngine ON
RewriteRule ^\?pag=(.+)  /page/$1 [R=301,L]

A ver si 'funca' :mola:
 
Última edición:

Julio Rodríguez

Diamante
Usuario de Bronce
Mensajes
2,521
Puntuación de reacción
2
Hola,

es tan fácil como poner en tu página web un php que compruebe la ruta con la variable $_SERVER y si lleva .php que lo redirija.
 
Mensajes
140
Puntuación de reacción
0
Gracias @Julio por contestar. La verdad es que por medio de php se puede hacer, pero prefiero hacerlo por .htacess. Ya que tengo conflictos con redirecciones en php ya que las redirecciones hay que hacerlas antes de crear una visualización de html ya que si no no funcionan y cosas de esas.

En cuanto a lo que dices @lobogris de Rewrite Rule ^\?pag=(.+) /page/$1 [R=301,L] lo he estado probando y nada. no responde, se queda igual.

no se la verdad que hacer.
 
Última edición:

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Gracias @Julio por contestar. La verdad es que por medio de php se puede hacer, pero prefiero hacerlo por .htacess. Ya que tengo conflictos con redirecciones en php ya que las redirecciones hay que hacerlas antes de crear una visualización de html ya que si no no funcionan y cosas de esas.

En cuanto a lo que dices @lobogris de Rewrite Rule ^\?pag=(.+) /page/$1 [R=301,L] lo he estado probando y nada. no responde, se queda igual.

no se la verdad que hacer.

Se me coló un espacio en Rewrite Rule, ¿has probado a ponerlo junto?
 
Mensajes
140
Puntuación de reacción
0
Se me coló un espacio en Rewrite Rule, ¿has probado a ponerlo junto?

jaja, si si. Lo estuve probando bien escrito y modificando pequeños detalles y nada. para hacerte una ideo si yo hago esto.

RewriteRule ^pag/(.*)$ ?pag=$1 [R=301,L]

La url dominio.com/pag/3 me la redirecciona hacia dominio.com/?pag=3 es exactamente eso pero al revés. La verdad nunca pensé que fuese tan dificil.
 

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
jaja, si si. Lo estuve probando bien escrito y modificando pequeños detalles y nada. para hacerte una ideo si yo hago esto.

RewriteRule ^pag/(.*)$ ?pag=$1 [R=301,L]

La url dominio.com/pag/3 me la redirecciona hacia dominio.com/?pag=3 es exactamente eso pero al revés. La verdad nunca pensé que fuese tan dificil.
Yo no me conozco bien las expresiones regulares y menos .htaccess xD

Pero algo raro hay... la regla parece estar bien... ¿has probado a fijar los valores enviando ?pag=3 a /pagina/3, o sea sin expresiones regulares? En principio debería ser lo mismo, pero igual se te cuela algo y por eso no va :confused:
 
Estado
No está abierto para más respuestas.
Arriba