Hola, en mi prestashop 1.6.1.24, el archivo header.tpl de mi tema (warehouse), aparecen las siguientes variables y necesitaría forzar dichos enlaces con SSL, ya que cuando se imprimen en sus respectivas páginas html aparecen con http:// Como debería hacerlo?
$link->getCategoryLink
$link->getProductLink
$link->getCMSLink
$link->getManufacturerLink
Aquí muestro el fragmento del bloque hreflang del themes/warehouse/header.tpl
<!-- hreflang -->
{if $page_name == 'index' or $page_name == 'search'}
<link rel="canonical" href="{$base_dir_ssl}{$lang_iso}/" />
{foreach $languages as $lang}
<link rel="alternate" hreflang="{$lang.iso_code}" href="{$base_dir_ssl}{$lang.iso_code}/" />
{/foreach}
{/if}
{if $page_name == 'category'}
<link rel="canonical" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCategoryLink($smarty.get.id_category, null, $lang.id_lang,null,null )}" />{/foreach}
{/if}
{if $page_name == 'product'}
<link rel="canonical" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $id_lang, null, 0, false)}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $lang.id_lang, null, 0, false)}" />{/foreach}
{/if}
{if $page_name == 'cms'}
<link rel="canonical" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $id_lang)}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.lang_iso}" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $lang.id_lang)}" />{/foreach}
{/if}
{if $page_name == 'manufacturer'}
<link rel="canonical" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, null, null, $id_lang, null, 0, false)}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, null, null, $lang.id_lang, null, 0, false)}" />{/foreach}
{/if}
<!-- fin hreflang -->
Saludos y gracias por todo,
Contenido solo visible a usuarios registrados
Hola
Ese código ya debería generarte el https, ya que son funciones del propio PrestaShop
Revisa este artículo para habilitar https en caso se te haya escapado algo:
https://www.webempresa.com/blog/habilita-ssl-en-prestashop-seguridad-para-ti-y-tus-clientes.html
Envíanos algunas capturas de pantalla para ver cómo has configurado https en tu sitio.
Saludos.
Hola,
Si no te bastara con lo que mi compañero @Jhon te comparte te sugiero agregar lo suguiente al fichero .htaccess de tu prestashop accediendo a él desde tu cuenta de cPanel -> Administrador de archivos
<IfModule mod_headers.c> Header always set Content-Security-Policy "upgrade-insecure-requests;" </IfModule>
Saludos
Hola @jmarreros, adjunto te muestro las configuraciones que tengo..., como verás esta todo activado según las recomendaciones del artículo que me has indicado. En toda la web carga perfectamente SSL pero en las etiquetas canonical y hreflang no muestra ssl, como podría forzar para que aparezcan en las canonicas el ssl
Hola Gus,
Como esta configurado ya deberia forzar el SSL en todo tu sitio web. Haz probado forzar el SSL en todo tu sitio web a través del archivo htaccess por ejemplo usando el siguiente código, puedes ver la información completa en el siguiente enlace
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{HTTP_HOST} ^tu_dominio.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.tu_dominio.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]
De igual forma puedes verificar el siguiente hilo donde tratan un tema similar -> https://www.webempresa.com/foro/administracion-prestashop/forzar-https-usando-htaccess
También comprueba lo que te ha comentado mi compañero Bulmaro
i no te bastara con lo que mi compañero @Jhon te comparte te sugiero agregar lo suguiente al fichero .htaccess de tu prestashop accediendo a él desde tu cuenta de cPanel -> Administrador de archivos
<IfModule mod_headers.c> Header always set Content-Security-Policy "upgrade-insecure-requests;" </IfModule>
PD: Recuerda realizar una copia de seguridad de tus archivos antes de realizar cualquier cambio, de esta forma si se genera algún error puedes restaurarla.
Un Saludo
Hola @bulmaro-webempresa, he añadido como indicas el fragmento
<IfModule mod_headers.c> Header always set Content-Security-Policy "upgrade-insecure-requests;" </IfModule>
y tampoco funciona, sigue mostrando contenido mixto en las canonicals, pero lo que he visto, es que tengo dos directivas con el mismo nombre, adjunto capturas para que me indiques si deberían estar juntas o que debería hacer con ellas... Gracias por todo,
Hola @karen, he comprobado lo que me indicas y lo tengo todo correcto aparentemente. Paralelamente como verás también en mi respuesta anterior, también he añadido el fragmento IfModule mod_headers.c ..... lo único que he visto quizás anómalo, es que en el htaccess existen dos directivas (mod_headers.c) pero no se si sería normal, salvando esto, tampoco funciona, es decir siguen apareciendo en las canonicals contenido sin https. adjunto captura de mi htaccess y del código de mi web con el contenido mixto.
Hola Gus,
Actualmente veo que todo tu sitio esta cargando con https:
Ingresando directamente a donde comentas no se logra cargar en http, ten en cuenta que aunque muestre un http en el código fuente este esta siendo sustituido en la carga del mismo por https al insertar el código que compartes en tu último mensaje, de esta forma fuerzas la carga en https de todo tu contenido.
Un saludo 🖐️
Gracias @argenis por tus comentarios, pero la cuestión es que al llevar a cabo análisis de seo onpage, tengo un montón de errores que no me permiten posicionar correctamente. Debo resolver dichos errores graves, ya que esto repercute negativamente en los resultados de búsqueda. Por tanto, vuelvo al inicio de mi consulta, partiendo de la base, de que mi htaccess es correcto ya que sigo vuestras directivas mencionadas....
adjunto captura errores contenido mixto..
en mi prestashop 1.6.1.24, el archivo header.tpl de mi tema (warehouse), aparecen las siguientes variables y necesitaría forzar dichos enlaces con SSL, ya que cuando se imprimen en sus respectivas páginas html aparecen con http:// Como debería hacerlo?
$link->getCategoryLink
$link->getProductLink
$link->getCMSLink
$link->getManufacturerLink
Aquí muestro el fragmento del bloque hreflang del themes/warehouse/header.tpl
<!-- hreflang -->
{if $page_name == 'index' or $page_name == 'search'}
<link rel="canonical" href="{$base_dir_ssl}{$lang_iso}/" />
{foreach $languages as $lang}
<link rel="alternate" hreflang="{$lang.iso_code}" href="{$base_dir_ssl}{$lang.iso_code}/" />
{/foreach}
{/if}
{if $page_name == 'category'}
<link rel="canonical" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCategoryLink($smarty.get.id_category, null, $lang.id_lang,null,null )}" />{/foreach}
{/if}
{if $page_name == 'product'}
<link rel="canonical" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $id_lang, null, 0, false)}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $lang.id_lang, null, 0, false)}" />{/foreach}
{/if}
{if $page_name == 'cms'}
<link rel="canonical" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $id_lang)}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.lang_iso}" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $lang.id_lang)}" />{/foreach}
{/if}
{if $page_name == 'manufacturer'}
<link rel="canonical" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, null, null, $id_lang, null, 0, false)}" />
{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, null, null, $lang.id_lang, null, 0, false)}" />{/foreach}
{/if}
<!-- fin hreflang -->
Saludos y muchas gracias por todo,
Hola Gus.
No tienes problemas esta cargando bien con el certificado.
La etiqueta hreflang se suele utilizar cuando tenemos por ejemplo una web con distintos idiomas y le indicamos a los buscadores que no es un contenido duplicado y les indica que contenido es el que tiene que indexar, en tu caso solo utilizas un idioma.
El aviso que te muestra no es por la carga de HTTP ( invalid Tag ) esto es por que no tiene una referencia a otro idioma pero no es ningun error ni tienes porque preocuparte es así y no te afectará al posicionamiento ni te penaliza.
-> https://support.google.com/webmasters/answer/189077?hl=es
No tienes problemas con eso 😉
Un saludo
Gracias @pepesoler por tu aclaración..., en cuanto a la etiqueta hreflang entiendo que sea como me indicas, pero que me dices de la etiqueta canonical?, también aparece sin ssl, por lo que me gustaría que fuera https. adjunto captura del código de una página renderizada...
Hola Gus,
En realidad esto no es un problema, la configuración me parece correcta, te sugiero revisar -> url-canonica-en-prestashop-activala-correctamente.html
Quizás podría ayudarte el modulo de -> https://www.4webs.es/blog/modulo-prestashop-1-6-canonical-seo, aunque lo pensaría 2 veces, ya que tu plantilla ya incluye las etiquetas necesarias para la url Canonical, etc.
Si lo deseas tambien puedes consultar con el desarrollador de tu template de Prestashop para que te de las instrucciones necesarias según las modificaciones que consideres pertinentes -> https://iqitcommerce.ticksy.com/