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>