No estás registrado (Registrarse)

Vanilla 1.1.10 es un producto de Lussumo. Para más información: Documentación, Soporte.

    • CommentAuthorterrybarna
    • CommentTimeMay 20th 2011
     # 1
    Hola chicos necesito vuestra ayuda ya que no lo logro conseguir.

    NEcesito que las urls que cotengan /pets-loquesea/ redireccionen con un 301 a la home pero no hay manera de que funcione. Es la última linea. El resto de código funciona para hacer otras cosas.


    RewriteEngine on

    RewriteBase /

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




    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?command=$1 [L]



    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{THE_REQUEST} ^.*/index.php
    RewriteRule ^(.*)index.php$ http://www.domain.com/$1 [R=301,L]
    Rewriterule ^(.*)/pets-(.*)/$ / [R=301,nc,L]



    Gracias.
    •  
      CommentAuthorAntonio
    • CommentTimeMay 21st 2011
     # 2
    Posted By: terrybarnaRewriterule ^(.*)/pets-(.*)/$ / [R=301,nc,L]


    Esto creo que tendrías que ponerlo más arriba de esto:

    Posted By: terrybarnaRewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?command=$1 [L]


    junto a otros

    Posted By: terrybarnaRewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    • CommentAuthorterrybarna
    • CommentTimeMay 21st 2011
     # 3
    Antonio ya he testeado todas las posiciones y nada. No funciona.:cry:
    •  
      CommentAuthorjorgerg
    • CommentTimeMay 21st 2011 editado
     # 4
    RewriteRule:
    -----------------------------------------------------------------------------
    1. comprobar que tienes el "mod_rewrite enabled" en tu archivo .htaccess

    2. comprobar que tienes correctamente expuesto el camino de la raíz de tu servidor (old/URL/path)

    RewriteRule ^old/URL/path$ http://tudominio.com/new/path [R=301,L]
    -----------------------------------------------------------------------------

    El "Rewriterule" se usa asi:

    (si quieres condicionar tus IP)
    RewriteCond %{HTTP_HOST} ^IP\.IP\.IP\.IP [OR]
    RewriteCond %{HTTP_HOST} ^tudominio\.com
    (si quieres condicionar tu dominio)


    Luego, si necesitas enviar todos tus archivos::
    RewriteRule (.*) http://www.tudominio.com/$1 [R=301,L]

    Si necesitas especificar toda una carpeta - ojo - en este el signo es de ... SUMA(.+):

    RewriteRule ^carpeta/pets-(.+)\.php carpeta/xx.php?pets=$1
    (carpeta/xx.php?pets=$1 .....es la dirección donde hay un archivo PHP que se va a encargar de procesar todas las URLs que cumplan el patrón.
    Por ejemplo : www.tudominio.com/carpeta/ver_articulo.php?id=pets)


    Mas especifico, asi:
    RewriteRule ^pets-(.+)\.php carpeta/xx.php?pets=$1
    o
    RewriteRule ^pets-(.+)\.php xx.php?pets=$1


    Otro mas sencillo y directo:
    RewriteRule ^pets-(.+)\.php http://tudominio.com/index.php [R=301,L]

    Tambien puedes ensayar:
    RewriteRule ^pets\.php http://tudominio.com/index.php [R=301,L]
    -----------------------------------------------------------------------------


    -----------------------------------------------------------------------------
    301 REDIRECT:
    -----------------------------------------------------------------------------
    1. Es mucho mas sencillo utilizar el "301 redirect"

    2. Si tienes otras lineas de codigo en tu .htaccess. debes "saltar una línea"
    dejando un espacio, luego:

    redirect 301 /antiguacarpeta/old.php http://www.dominio.com/xx.php

    3. (Subir este archivo a la carpeta raíz de tu servidor.)
    -----------------------------------------------------------------------------

    Otra:
    1. Si quieres redirigir todos los archivos "pets-*", debes usar:

    redirectMatch 301 ^pets-(.*)$ http://www.tudominio.com/xx.php

    OJO: Siempre revisar los codigos y tomar nota de la diferencia entre:
    (.*) y (.+)
    / y \


    Espero que te sea util.

    :dominero:VPS y CLOUD Profesional Hosting | WordPress Hosting
    • CommentAuthorterrybarna
    • CommentTimeMay 21st 2011 editado
     # 5
    Gracias jorge lo voy a mirar. Espero conseguirlo jeje. Muchas gracias.:cataa:
    • CommentAuthorepsilon
    • CommentTimeMay 21st 2011
     # 6
    Probaste haciendo esto y poniendolo arriba de todo???

    RewriteCond %{THE_REQUEST} ^GET\ .*/pets-.*\ HTTP
    RewriteRule .*$ / [R=301,NC,L]

    saludosDisclaimer: Por lo menos así lo veo yo.
    • CommentAuthorterrybarna
    • CommentTimeMay 21st 2011
     # 7
    Gracias kifman. funciona en parte pero no del todo bien.

    Lo hace bien pero en la paginación www.domain.com/pets-1 www.domain.com/pets-2... me hace la redirección de las urls y no quiero que me las haga y después no quiero que me haga la redireccion de una categoria en concreto: www.domain.com/pet-shop/.

    Sabes como hacerlo con le htaccess?

    Muchas gracias kifman.:cataa:
    • CommentAuthorepsilon
    • CommentTimeMay 21st 2011 editado
     # 8
    No entiendo bien que es lo que quieres, explicame mejor a ver si te puedo ayudar.Disclaimer: Por lo menos así lo veo yo.
    •  
      CommentAuthorjorgerg
    • CommentTimeMay 21st 2011 editado
     # 9
    Si entendi lo que quieres hacer y rediriguirlo a la raiz de tu propio dominio . . . Mas sencillo imposible:

    RewriteRule ^pets-(.+) / [R=301,L]

    Y si quieres trabajar solo carpetas:

    RewriteRule ^pets-(.+)/ / [R=301,L]

    Si trabajas dos carpetas:

    RewriteRule ^pets-(.+)/(.+) / [R=301,L]VPS y CLOUD Profesional Hosting | WordPress Hosting
    • CommentAuthorterrybarna
    • CommentTimeMay 22nd 2011 editado
     # 10
    Gracias a jorge el tuyo también funciona.

    Ahora lo que me falta es crear un RewriteCond para que no haga la redirección de la carpeta www.domain.com/pets-shop/ a la home.

    Sabéis cómo sería?

    Gracias a los dos.:cataa::cataa:
    • CommentAuthorepsilon
    • CommentTimeMay 22nd 2011 editado
     # 11
    Pues una forma podria ser usando

    RewriteCond %{THE_REQUEST} ^GET\ .*/pets-.*\ HTTP
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .*$ / [R=301,NC,L]

    o

    RewriteCond %{THE_REQUEST} ^GET\ .*/pets-[0-9]*.*\ HTTP
    RewriteRule .*$ / [R=301,NC,L]

    o
    RewriteCond %{THE_REQUEST} ^GET\ .*/pets-\d*.*\ HTTP
    RewriteRule .*$ / [R=301,NC,L]

    El primero excluye de la reglsa a todos los directorios
    Los otros dos solo aplican a los pets- segudos por nuemeros de cualquier cantidad de digitos


    Siempre es mejor usar condiciones sino podrias caer en un redireccionamiento recursivo. Ademas de que todos tus sitios pasarian a comprobar la regla por lo que es ineficiente.


    El de jorgeg me temo que no funcione ya que no todo el mundo porne la barra final de los directoriosDisclaimer: Por lo menos así lo veo yo.
    • CommentAuthorterrybarna
    • CommentTimeMay 22nd 2011
     # 12
    ahora ya redirecciona todas las carpetas a la home. Ahora Solo falta que la carpeta /pets-shop/ no la redireccione. Entonces con esas condiciones que me habéis pasado no lo hace.
    • CommentAuthorepsilon
    • CommentTimeMay 22nd 2011
     # 13
    RewriteCond %{THE_REQUEST} ^GET\ .*/pets-.*\ HTTP
    RewriteCond %{THE_REQUEST} !^GET\ .*/pets-shop.*\ HTTP
    RewriteRule .*$ / [R=301,NC,L]Disclaimer: Por lo menos así lo veo yo.
    • CommentAuthorterrybarna
    • CommentTimeMay 22nd 2011
     # 14
    Gracias a los dos. Al final el que funcionó fue éste: RewriteCond %{THE_REQUEST} !^GET\ .*/pets-shop.*\ HTTP


    :cataa::cataa:
    • CommentAuthorepsilon
    • CommentTimeMay 22nd 2011 editado
     # 15
    dnd terrybarna :cataa:Disclaimer: Por lo menos así lo veo yo.
    •  
      CommentAuthortrevanian
    • CommentTimeMay 22nd 2011
     # 16
    Posted By: terrybarnapets-shop

    Kifman y Jorge. Los Pet Shop Boys. :tiko:En lo más íntimo quiero chili (con carne, a poder ser :tiko:) · Especialista en tiros por la culata · No me ando con chiquitas · Gandu hu, gandu hu, garu se kaho!
    • CommentAuthorepsilon
    • CommentTimeMay 22nd 2011
     # 17
    :eyebrows:Disclaimer: Por lo menos así lo veo yo.
    •  
      CommentAuthorignatius
    • CommentTimeMay 12th 2012
     # 18
    Para hacer 301 de cara a quitar o poner las www desde htaccess y evitar contenido duplicado: ¿qué ocurre con los dominios IDN? ¿hay que ponerlos en punnycode o unicode (no sé si se dirá así lo opuesto a unicode :dumb:)
    •  
      CommentAuthorAntonio
    • CommentTimeMay 12th 2012
     # 19
    Si es solamente para lo de las www no es necesario que pongas el dominio, puedes usar %{HTTP_HOST} o REMOTE_HOST ahora no recuerdo.
    Pero me sumo a la peticion para saber si en literal o en puny.
    imagino de todas formas que con puny deberia vales siempre.
    •  
      CommentAuthorignatius
    • CommentTimeMay 12th 2012
     # 20
    Posted By: Antonio VillamarinSi es solamente para lo de las www no es necesario que pongas el dominio, puedes usar %{HTTP_HOST} o REMOTE_HOST ahora no recuerdo.


    Cierto, gracias!


    Posted By: Antonio Villamarinme sumo a la peticion para saber si en literal o en puny.


    Sí, ya que estamos a ver si alguien lo sabe.
    •  
      CommentAuthornachillo
    • CommentTimeDec 12th 2012
     # 21
    Señores, reactivo este hilo porque necesito de su asesoria (continuo buscando en san gooble,pero si alguien me ilumina por aqui, mejor...)

    Como seria un 301 en htaccess que me permita hacer lo siguiente:

    Enviar todo lo que tengo en una categoria del antiguo, a la misma categoria del nuevo... ejemplo:

    Categoria: Playeras / Talla 20
    Antiguo:
    index.php?page=shop.browse&category_id=49&option=com_virtuemart&Itemid=1
    Nuevo:
    index.php?route=product/category&path=61_2_20_19

    Categoria: Playeras / Talla 22
    Antiguo:
    index.php?page=shop.browse&category_id=18&option=com_virtuemart&Itemid=1
    Nuevo:
    index.php?route=product/category&path=61_2_20_15

    La idea es que cualquier producto que este dentro de la categoria antigua me redireccione a la categoria nueva... no lo enviará directamente al producto, pero al menos si a la misma categoria.

    Espero puedan apoyar...
    •  
      CommentAuthorAntonio
    • CommentTimeDec 14th 2012 editado
     # 22
    Posted By: nachilloCategoria: Playeras / Talla 20
    Antiguo:
    index.php?page=shop.browse&category_id=49&option=com_virtuemart&Itemid=1
    Nuevo:
    index.php?route=product/category&path=61_2_20_19

    Categoria: Playeras / Talla 22
    Antiguo:
    index.php?page=shop.browse&category_id=18&option=com_virtuemart&Itemid=1
    Nuevo:
    index.php?route=product/category&path=61_2_20_15


    Nachillo, no veo ninguna relación entre el origen y destino para hacer una expresión regular.

    Lo único que se me ocurre es que hagas una redirección 301 por cada categoría, es decir, para Apache:

    RedirectMatch 301 ^index.php.*category_id\=49.*$ index.php?route=product/category&path=61_2_20_19

    Esto para la categoría 49, suponiendo que 61_2_20_19 sea la categoría en el destino y que en el origen Itemid=1 sea el producto. E ir haciendo esto para todas las categorías. Es un curro, pero no veo otra.

    A ver si te sirve :)
    •  
      CommentAuthornachillo
    • CommentTimeDec 14th 2012
     # 23
    Antonio, gracias.

    ¿esta bien poner esto en el .htaccess para hacer una redireccion individual (link por link)?:
    redirect 301 /index.php?page=shop.browse&category_id=94&option=com_virtuemart&Itemid=1 http://http://newdomain.com/index.php?route=product/category&path=61_1_7

    y por otro lado, como puedo poner en el .htaccess que si no lo encuentra en lo individual me mande al home del nuevo dominio?

    Gracias por la ayuda:ildivo:
    •  
      CommentAuthorAntonio
    • CommentTimeDec 14th 2012
     # 24
    Posted By: nachillo¿esta bien poner esto en el .htaccess para hacer una redireccion individual (link por link)?:
    redirect 301 /index.php?page=shop.browse&category_id=94&option=com_virtuemart&Itemid=1 http://http://newdomain.com/index.php?route=product/category&path=61_1_7


    Sip :)

    Posted By: nachilloy por otro lado, como puedo poner en el .htaccess que si no lo encuentra en lo individual me mande al home del nuevo dominio?


    Aquí depende. Si se trata de diferentes dominios es sencillo. Como entiendo que es el mismo dominio tendrías que encontrar algo que solo aparezca en la url origen y la identifique. Por ejemplo se podría poner:

    RedirectMatch 301 ^.*com_virtuemart.*$ http://nuevodominio.com

    No sé si todas las urls de la tienda antigua llevan "com_virtuemart", pero si es así te valdría poniéndolo al final de las otras redirecciones.

    Sino, podría ser con "shop\.browse" por ejemplo.

    Vamos a ver si lo puedes cuadrar así ;)
    •  
      CommentAuthornachillo
    • CommentTimeDec 14th 2012
     # 25
    Eso hare, pondre primero los individuales, y al termino pondre:
    RedirectMatch 301 ^.*com_virtuemart.*$ http://nuevodominio.com
    ya que si, todos los links del "antiguo sitio" tienen com_virtuemart

    Antonio, gracias mil.
    •  
      CommentAuthorignatius
    • CommentTimeDec 14th 2013
     # 26
    Alguna forma genérica de redirección 301 para pasar de www.midominio.ext a midominio.ext que:

    - No necesite poner el nombre del dominio en el .htaccess para que sirva para varios dominios que apuntan a la misma carpeta (imagino que será mediante expresiones regulares)

    - Que valga tanto para dominios de segundo nivel como para los de tercer: loquesea.com.co, loquesea.co, loquesea.co.uk, loquesea.com.es

    Gracias!
    •  
      CommentAuthorCorso
    • CommentTimeDec 14th 2013
     # 27
    Posted By: ignatius
    - No necesite poner el nombre del dominio en el .htaccess para que sirva para varios dominios que apuntan a la misma carpeta (imagino que será mediante expresiones regulares)


    En la doc de Apache.

    Posted By: ignatius- Que valga tanto para dominios de segundo nivel como para los de tercer: loquesea.com.co, loquesea.co, loquesea.co.uk, loquesea.com.es


    Para esto ya hay que pensar un poco. :dumb::: el roce hace el dominio ::
    •  
      CommentAuthorAntonio
    • CommentTimeDec 14th 2013 editado
     # 28
    Esto en el htaccess te sirve para dominios de primer nivel y de segundo nivel. También para subdominios.

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


    y esto por si quieres poner todo con www

    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    •  
      CommentAuthorignatius
    • CommentTimeDec 14th 2013
     # 29
    Posted By: Antonio VillamarinEsto en el htaccess te sirve para dominios de primer nivel y de segundo nivel. También para subdominios.


    Gracias! :cataa:

    Posted By: CorsoEn la doc de Apache


    Sí gracias, lo había estado leyendo pero no daba con esto concreto.
    • CommentAuthorterrybarna
    • CommentTimeDec 15th 2013 editado
     # 30
    Alguien sabe como hacer un 301 a la home desde htaccess cuando la url no existe en lugar de que te retorne un 404?
    •  
      CommentAuthorRoman
    • CommentTimeDec 15th 2013 editado
     # 31
    Por lo que yo sé, a menos que hayan vuelto a cambiar las reglas, eso es MALÍSIMO para el SEO.

    No te lo recomiendo. Mejor personaliza una buena página 4o4 con buscador y esas cosas que provoquen los visitantes sigan en tu web.
    •  
      CommentAuthorignatius
    • CommentTimeDec 15th 2013 editado
     # 32
    Posted By: terrybarnaAlguien sabe como hacer un 301 a la home desde htaccess cuando la url no existe en lugar de que te retorne un 404?


    Como te dice Roman es malo para seo, mejor tener un 404 personalizado con sugerencias,buscador y demás; algo como

    ErrorDocument 404 /ruta/a/pagina-error-404.php
    • CommentAuthorterrybarna
    • CommentTimeDec 15th 2013
     # 33
    Gracias a los dos por vuestras respuesta.s Independientemente de si es malo para el seo o no. Alguien sabe el código htaccess para que lo haga?
    •  
      CommentAuthorignatius
    • CommentTimeDec 15th 2013
     # 34
    Posted By: terrybarnaIndependientemente de si es malo para el seo o no. Alguien sabe el código htaccess para que lo haga?


    Uy sí... de hecho te lo había puesto en el mensaje anterior pero no sé por qué no lo pegué bien...

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . / [L,R=301]


    Viene a decir "si se da la condición de que lo que pides no existes lo mandas a la home con el código de redirección 301"
    • CommentAuthorterrybarna
    • CommentTimeDec 17th 2013
     # 35
    Muchas gracias Ignatius. Funcionó !!!:cataa:
    •  
      CommentAuthorDario
    • CommentTimeMar 7th 2016 editado
     # 36
    Tengo el siguiente problema:

    Regularmente hago redirecciones en el .htaccess de mi prestashop siguiendo la fórmula:
    Redirect 301 /antigua-pagina http://www.mitienda.com/nueva-pagina , y siempre me funcionan.

    Pero ahora GWT me marca 3 errores de rastreo (error 404) en www.dominio.com y no encuentro manera de reparalas. Las redirecciono utilizando la fórmula de arriba pero devuelven siempre error 404. Son estas:

    module/mailalerts/actions?process=check
    module/mailalerts/actions?process=add
    index.php?controller=404

    Alguien puede ayudarme por favorStephen M. Cohen fue un mártir :matu:
    •  
      CommentAuthorCorso
    • CommentTimeMar 7th 2016
     # 37
    ¿Seguro que tienes que hacer esas redirecciones?:: el roce hace el dominio ::
    •  
      CommentAuthorDario
    • CommentTimeMar 7th 2016
     # 38
    :confuso:

    es que las marca WT como errores de rastreo.

    En las otras tiendas que tengo salen 0 errores de rastreo, todo limpio.Stephen M. Cohen fue un mártir :matu:
    •  
      CommentAuthorCorso
    • CommentTimeMar 7th 2016
     # 39
    ¿Pero qué landings son esas? ¿Necesitan estar indexadas?:: el roce hace el dominio ::
    •  
      CommentAuthorDario
    • CommentTimeMar 7th 2016
     # 40
    Posted By: Corso¿Pero qué landings son esas? ¿Necesitan estar indexadas?

    Ostras.. no lo se. No creo que necesiten ser indexadas para nada, a mi me funciona todo bien en la tienda.
    El caso es que dan error 404. Aparecen en "errores de rastreo" y no se van de ahi ni con agua caliente. ¿Cómo hacer para que no salgan?Stephen M. Cohen fue un mártir :matu: