Blog Importer rekisteröi automaattisesti Shopifyn omat 301-uudelleenohjaukset, kun siirrät blogikirjoituksiasi. Tämä varmistaa hakukonesijoitustesi (SEO) sujuvan siirron vanhalta sivustoltasi uuteen Shopify-kauppaasi ilman monimutkaista manuaalista määritystä.

On kuitenkin olemassa tiettyjä URL-malleja, joita Shopifyn sisäänrakennettu ominaisuus ei pysty käsittelemään.

Ei-tuettu malli: URL-osoitteet kyselyparametreilla

Shopifyn vakio-uudelleenohjausominaisuudella on rakenteellinen rajoitus: se ei pysty tunnistamaan tarkasti URL-osoitteita, jotka sisältävät ”?”-merkin (kyselyparametrit).

  • Tuettu esimerkki: example.com/old-post
  • Tuettu esimerkki (parametrit 2. tasolla tai syvemmällä): example.com/news/?pid=123
  • Ei-tuettu esimerkki: example.com/?pid=123 (Parametrisoidut URL-osoitteet suoraan juuriverkkotunnuksen alla)

Tämän tyyppisiä URL-osoitteita ei voi uudelleenohjata Blog Importerin tai Shopifyn oletusuudelleenohjausasetusten avulla.

Ratkaisu

Siirtääksesi sivut, joilla on nämä vanhat URL-rakenteet, sinun on käytettävä asiakaspuolen JavaScriptia ohjataksesi kävijät manuaalisesti oikealle sivulle heidän selaimessaan.

Miksi JavaScript on tarpeen?

Shopifyn omat uudelleenohjaukset käsitellään palvelinpuolella. Järjestelmällisesti Shopify pudottaa pois kaikki tiedot, jotka seuraavat ”?”-merkkiä URL-osoitteessa, mikä tekee liikenteen ehdollisesta ohjaamisesta parametrierojen perusteella mahdotonta.

Tämän ratkaisemiseksi tarvitsemme “älykästä reititystä”: JavaScript lukee välittömästi koko URL-osoitteen sivun latauksen yhteydessä kävijän selaimessa ja uudelleenohjaa heidät dynaamisesti oikeaan määränpäähän.

Kuinka toteuttaa JavaScriptilla (Esimerkkikoodi)

Sijoita seuraava koodi Shopify-teemasi theme.liquid-tiedostoon, välittömästi ennen sulkevaa </head>-tunnistetta. Päivitä redirectMap-muuttuja vastaamaan vanhoja URL-parametrejäsi ja niiden uusia polkuja.

<script>
(function() {
  // Uudelleenohjauskartta: Vanhat URL-parametrit uusiin polkuihin
  var redirectMap = {
    "?pid=123": "/blogs/news/article-a",
    "?pid=456": "/blogs/news/article-b",
    "?p=789": "/pages/contact"
  };

  var currentQuery = window.location.search;

  if (currentQuery && redirectMap[currentQuery]) {
    window.location.href = redirectMap[currentQuery];
  }
})();
</script>