Reglas de reescritura para antiguas mobile URL

Foros Foros Oscommerce OsCommerce 2.3.4 Bootstrap Dudas sobre Instalación y Configuración Reglas de reescritura para antiguas mobile URL

Este debate contiene 11 respuestas, tiene 3 mensajes y lo actualizó  reflex_ocasion hace 2 semanas, 5 días.

  • Autor
    Publicaciones
  • #2997

    raiwa
    Participante
    • Consultas7
    • Respuestas25
    • Total32
    • Avanzado
    • ★★

    Hola,

    a petición de @reflex_ocasion aquí las reglas de reescritura para los que usaban iosc mobile y han actualizado a bootstrap.

    En el .htaccess de raíz del sitio añadir justo al principio de los rewrite rules:
    Los que usan SEO URLs amigables:


    RewriteEngine On
    RewriteBase /
    RewriteRule ^mobile/(.*)$ /$1 [R=301,NC,L]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mc-([0-9_]+).html$ index.php?cPath=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mm-([0-9_]+).html$ index.php?manufacturers_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mp-([0-9]+).html$ product_info.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mpr-([0-9]+).html$ product_reviews.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mpri-([0-9]+).html$ product_reviews_info.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/catalog_mb.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)mobile/about.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)mobile/search.php$ index.php [R=301,NC,L]

    Los que usan URLs normales:


    RewriteEngine On
    RewriteBase /
    RewriteRule ^mobile/(.*)$ /$1 [R=301,NC,L]
    RewriteRule ^(.*?)mobile/catalog_mb.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)mobile/about.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)mobile/search.php$ index.php [R=301,NC,L]

    Esto es solo de referencia, no repetir:


    RewriteEngine On
    RewriteBase /

    Esto vale para instalaciones en subdirectorio /mobile/. Los que lo tenían debajo de un subdominio, necesitan adaptar las reglas.

    Un saludo
    Rainer

  • #16205

    reflex_ocasion
    Participante
    • Consultas66
    • Respuestas632
    • Total698
    • Forum-pro
    • ★★★★

    Gracias por el aporte, Rainer, seguro que a mas de uno le va a ser muy útil, a mi el primero! :alabanza:

    Parece que no es necesario pero si lo es y mas de lo que uno pueda pensar

    Recientemente he cambiado de 2.3.4 a BootStrap y de casualidad he visto en whos online del admin a un usuario que buscaba un producto, copie la url porque me extrañó que fuera la carpeta mobile, la pegué en una nueva ventana del navegador y me dió error 404

    BootStrap es responsive, se adapta automáticamente a la resolución de pantalla del dispositivo por lo que la versión móvil ya no es necesaria pero ¿que ocurre? que nuestra web está indexada por google tanto en versión normal como en versión móvil y si tratan de acceder desde un móvil da error 404 porque esa url ya no existe

    Para explicarlo mejor pongo un ejemplo

    Tenemos dominio.com/producto_de_ejemplo-p-123.html en la versión normal o versión PC y tenemos dominio.com/mobile/producto_de_ejemplo-mp-123.html en la versión móvil

    Tanto si vas del PC al móvil como si vas del móvil al PC la url cambia automáticamente y nosotros no notamos la diferencia a menos que miremos en la barra de navegación del navegador, de –p-123.html cambia a –mp-123.html y viceversa, ademas de la evidente carpeta mobile que aparece y desaparece según en que versión estemos

    En BS eso ya no es así por lo que si queremos acceder a –mp-123.html nos dará error 404 porque ya no existe, no se cambia automáticamente a –p-123.html

    Dentro de lo que cabe que nos de error 404 es lo de menos, lo malo es que el cliente no va a encontrar el producto que estaba buscando y perderemos una posible venta con el consiguiente malestar del cliente por el error

    Y lo peor es que google nos tiene indexado de las dos maneras y si continuamente da error 404 en la versión móvil perderemos posiciones y nos relegará a varias páginas mas atrás de la que solemos salir perdiendo así mas posibles ventas. Eso si no nos penaliza ya que últimamente te penalizan por todo

    En definitiva, que el redirect es muy necesario y hay que mantenerlo al menos un año según los expertos, personalmente recomiendo dos años como minimo, y si pueden ser mas pues mejor. Por el 2008 eliminé una página que había creado cuando empecé a usar la recien salida al mercado version 2.2rc2a de osC y hace unos seis meses google seguía buscando dicha página. Dejó de hacerlo cuando la bloqueé con el archivo robot.txt. Con esto quiero decir que pueden pasar años hasta que google se entere de que algo ya no existe, por eso mi recomendación es dejar los redirect todo el tiempo que se pueda

    Gracias de nuevo por el aporte, Rainer, y gracias también por todos los addons que estás publicando, gracias a ellos podemos demostrar que osCommerce no ha muerto como muchos quieren hacer creer a los demás y que es mas rápido cargando que Prestashop

  • #16206

    figue
    Participante
    • Consultas22
    • Respuestas852
    • Total874
    • Forum-pro
    • ★★★★

    Hola a los dos, a ver si podeis ayudarme.
    Estoy probando esto y no me funciona.
    Lo único que hace es eliminar de la ruta: mobile/

    Aqui dejo como lo tengo ahora:

    # Begin Ultimate SEO V2.2d
    Options +FollowSymLinks
    RewriteEngine On

    # RewriteBase instructions
    # Change RewriteBase dependent on how your shop is accessed as below.
    # http://www.mysite.com = RewriteBase /
    # http://www.mysite.com/catalog/ = RewriteBase /catalog/
    # http://www.mysite.com/catalog/shop/ = RewriteBase /catalog/shop/

    # Change the following line using the instructions above

    RewriteBase /

    # Reglas de reescritura para antiguas mobile URL
    RewriteRule ^mobile/(.*)$ /$1 [R=301,NC,L]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mc-([0-9_]+).html$ index.php?cPath=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mm-([0-9_]+).html$ index.php?manufacturers_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mp-([0-9]+).html$ product_info.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mpr-([0-9]+).html$ product_reviews.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/([a-z0-9/-]+)-mpri-([0-9]+).html$ product_reviews_info.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)mobile/catalog_mb.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)mobile/about.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)mobile/search.php$ index.php [R=301,NC,L]
    # Fin Reglas de reescritura para antiguas mobile URL

    RewriteRule ^(.*)-p-(.*).html$ product_info.php?products_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-c-(.*).html$ index.php?cPath=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-m-(.*).html$ index.php?manufacturers_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-pi-(.*).html$ popup_image.php?pID=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-by-(.*).html$ all-products.php?fl=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-t-(.*).html$ articles.php?tPath=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-a-(.*).html$ article_info.php?articles_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-au-(.*).html$ articles.php?authors_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-pr-(.*).html$ product_reviews.php?products_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-pri-(.*).html$ product_reviews_info.php?products_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-f-(.*).html$ faqdesk_info.php?faqdesk_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-fc-(.*).html$ faqdesk_index.php?faqPath=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-fri-(.*).html$ faqdesk_reviews_info.php?faqdesk_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-fra-(.*).html$ faqdesk_reviews_article.php?faqdesk_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-i-(.*).html$ information.php?info_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-links-(.*).html$ links.php?lPath=$2&%{QUERY_STRING}
    #RewriteRule ^(.*)-pm-([0-9]+).html$ info_pages.php?pages_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-pm-([0-9]+).html$ extra_info_pages.php?pages_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-n-(.*).html$ newsdesk_info.php?newsdesk_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-nc-(.*).html$ newsdesk_index.php?newsPath=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-nri-(.*).html$ newsdesk_reviews_info.php?newsdesk_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-nra-(.*).html$ newsdesk_reviews_article.php?newsdesk_id=$2&%{QUERY_STRING}
    RewriteRule ^(.*)-po-([0-9]+).html$ pollbooth.php?pollid=$2&%{QUERY_STRING}
    # End Ultimate SEO V2.2d
  • #16208

    reflex_ocasion
    Participante
    • Consultas66
    • Respuestas632
    • Total698
    • Forum-pro
    • ★★★★

    Has probado a vaciar la caché del SEO? algunas veces eso funciona incluso con las miniaturas cuando cambias una imagen por otra. Cuando la cambias, no cuando añades alguna imagen nueva

  • #16209

    figue
    Participante
    • Consultas22
    • Respuestas852
    • Total874
    • Forum-pro
    • ★★★★

    Lo acabo de probar y sigue igual.

    Yo creo que es algo que no esta bien en la rdireccion.
    Solo quita el directorio mobile, pero el resto lo deja igual.

  • #16210

    reflex_ocasion
    Participante
    • Consultas66
    • Respuestas632
    • Total698
    • Forum-pro
    • ★★★★

    Si, tienes razón, lo acabo de probar y me ocurre lo mismo, no funciona bien del todo

    Probando probando ya he encontrado la solución, tienes que quitar el nombre de la carpeta mobile para que redirija al producto / marca

    El codigo lo primero que dice es que de la carpeta mobile redirija a raiz, lo siguiente que dice es que el producto ubicado en la carpeta mobile lo redirija a raiz lo cual es una contradicción ya que si desde un principio te dice que vayas a raiz el producto ubicado en dicha carpeta no lo va a encontrar porque no puede acceder ¿entiendes?

    Corregido quedaría así

    RewriteEngine On
    RewriteBase /
    RewriteRule ^mobile/(.*)$ /$1 [R=301,NC,L]
    RewriteRule ^(.*?)([a-z0-9/-]+)-mc-([0-9_]+).html$ index.php?cPath=$3 [R=301,NC]
    RewriteRule ^(.*?)([a-z0-9/-]+)-mm-([0-9_]+).html$ index.php?manufacturers_id=$3 [R=301,NC]
    RewriteRule ^(.*?)([a-z0-9/-]+)-mp-([0-9]+).html$ product_info.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)([a-z0-9/-]+)-mpr-([0-9]+).html$ product_reviews.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)([a-z0-9/-]+)-mpri-([0-9]+).html$ product_reviews_info.php?products_id=$3 [R=301,NC]
    RewriteRule ^(.*?)catalog_mb.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)about.php$ index.php [R=301,NC,L]
    RewriteRule ^(.*?)search.php$ index.php [R=301,NC,L]

    Ahora así si me funciona correctamente, pruebalo tu y me dices

  • #16211

    figue
    Participante
    • Consultas22
    • Respuestas852
    • Total874
    • Forum-pro
    • ★★★★

    Lo he probado y ahora ya funciona.

    Ahora te redirige por ejemplo a esto:
    de:
    /mobile/nombredeproducto-mp-480.html
    A:
    /product_info.php?products_id=480

    Y para que redirija con la url amigable, hay que activar en el SEO Url esto:
    Enable automatic redirects? true

    Lo doy por solucionado.
    Gracias.

  • #16207

    reflex_ocasion
    Participante
    • Consultas66
    • Respuestas632
    • Total698
    • Forum-pro
    • ★★★★

    Pues si no llega a ser por ti yo ni me entero de que me da el mismo error asi que gracias a ti por avisar

    Saludos

  • #16212

    reflex_ocasion
    Participante
    • Consultas66
    • Respuestas632
    • Total698
    • Forum-pro
    • ★★★★

    Acabo de comprobar en google webmaster tools una serie de errores referentes a las versiones móviles que hay que solucionar

    Antes de nada voy a aclarar mi situación ya que puede afectar a algunos pero no a todos

    En su día instalé una versión móvil que incluía en raiz una serie de archivos que empezaban por mobile_nombre_archivo.php. Esto es lo que hay que solucionar. Si no instalaste esta versión tan antigua de la versión móvil porque instalastes una mas moderna (siguiente punto) este paso no es necesario realizarlo

    Al cambiar de version de osC también cambié de versión móvil a una mas actual, con las urls amigables se cambia automáticamente de producto-m-1234.html a producto-mp-1234.html. Esto ya está solucionado en este mismo hilo, lee un poco mas arriba

    Si has instalado la versión antigua de la versión móvil hay que editar el archivo .htaccess y añadir

    Redirect 301 /mobile_product_info.php http://www.tudominio.com/product_info.php

    ¿Donde? no creo que tenga mucha importancia pero por si acaso yo lo tengo puesto antes del código antes citado (mas arriba)

    Repito que es un error de urls detectado en google webmaster tools, antes de hacer nada comprueba en tu cuenta si tambien los tienes

    Saludos

  • #16213

    figue
    Participante
    • Consultas22
    • Respuestas852
    • Total874
    • Forum-pro
    • ★★★★

    Tambien puedes poner la regla de redireccion modificando el archivo antiguo, con lo que tambien evitas los errores 404.
    Algo así:

    < ?php
    /*
    $Id$ mobile_product_info.php - redireccion 301

    osCommerce, Open Source E-Commerce Solutions
    http://www.oscommerce.com

    Copyright (c) 2010 osCommerce

    Released under the GNU General Public License
    */

    header("HTTP/1.1 301 Moved Permanently");
    header("Location: product_info.php");
    ?>
  • #16214

    reflex_ocasion
    Participante
    • Consultas66
    • Respuestas632
    • Total698
    • Forum-pro
    • ★★★★

    Eso si aun conservas los archivos antiguos pero si haces borron y cuenta nueva como hice yo ya no los conservas y, evidentemente, no puedes modificarlos

  • #30407

    reflex_ocasion
    Participante
    • Consultas66
    • Respuestas632
    • Total698
    • Forum-pro
    • ★★★★

    Reabro el hilo porque he tenido un problema “tonto” durante todo este tiempo

    Resulta que la búsqueda avanzada no funcionaba mientras que los resultados de dicha búsqueda si

    En su día se lo comenté a @raiwa y a la única conclusión que conseguimos llegar es que algo interfería pero no sabíamos que era. Hoy por fin lo he averiguado

    Donde pone
    RewriteRule ^(.*?)search.php$ index.php [R=301,NC,L]

    Hay que cambiarlo por
    RewriteRule ^(.*?)search.php$ advanced_search.php [R=301,NC,L]

    Se puede cambiar index.php por advanced_search.php como he hecho yo, se puede comentar la línea o se puede eliminar directamente, eso ya queda a criterio de cada uno que tenga el mismo problema que he tenido yo durante meses sin saber exactamente donde estaba el conflicto

    Normalmente el nombre del archivo se respeta y no entra en conflicto con otros con nombre similar pero aquí si entra en conflicto (ignoro por que) y por eso, cada vez que quería usar la búsqueda avanzada, me enviaba otra vez al index

Debes estar registrado para responder a este debate.