jonathanbj_A_guy_at_a_computer_creating_wildcard_redirects-php
Etusivu > Internet-markkinointi ja seo blogi > Tekninen > Luo wildcard uudelleenohjaukset php'llä

Luo wildcard uudelleenohjaukset php'llä

PHP:ssä voit luoda jokerimerkkipohjaisia uudelleenohjauksia käyttämällä säännöllisiä lausekkeita, jotka vastaavat pyydetyissä URL-osoitteissa olevia kuvioita, ja ohjaamalla sitten uudelleen näiden kuvioiden perusteella. Tämä onnistuu käyttämällä preg_match() funktiota vertaamaan URL-osoitetta säännöllisen lausekkeen malliin ja sitten käyttää header("Sijainti: ...") suorittaa uudelleenohjauksen.

Tässä on esimerkki siitä, miten voit luoda jokerimerkkipohjaisen uudelleenohjauksen PHP:ssä käyttämällä säännöllisiä lausekkeita:

// Hae pyydetty URL-osoite
$requestUri = $_SERVER['REQUEST_URI'];

// Määritellään säännöllisen lausekkeen kuvio tiettyjä kuvioita varten.
$pattern = '/^\\/user\/(\d+)\/?$/'; // Tämä kuvio vastaa URL-osoitteita kuten /user/{user_id}/.

// Tarkista, vastaako pyydetty URL-osoite mallia
if (preg_match($pattern, $requestUri, $matches)) {
    // Pura käyttäjän tunnus URL-osoitteesta
    $userID = $matches[1];
    
    // Ohjataan tietylle käyttäjäprofiilisivulle
    header("Sijainti: /profile.php?user_id=$userId");
    exit();
} else {
    // Käsittele muut tapaukset tai näytä virhesivu.
    echo "Sivua ei löytynyt";
}

Tässä esimerkissä säännöllisen lausekkeen kuvio '/^\\/user\/(\d+)\/?$/' vastaa URL-osoitteita kuten /user/{user_id}/. Jos pyydetty URL-osoite vastaa tätä mallia, se poimii käyttäjätunnuksen ja ohjaa tietyn käyttäjän profiilisivulle. Voit muokata säännöllisen lausekkeen mallia vastaamaan erilaisia URL-kuvioita tarpeidesi mukaan.

Ohjaa kaikki aliverkkotunnukset (esimerkiksi www ja ei-www).

Jos haluat ohjata kaikki määritetyt aladomainien versiot samaan kohteeseen, voit käyttää seuraavaa koodia:

// Hae pyydetty URL-osoite
$requestUri = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

// Määritä säännöllisen lausekkeen malli eri aladomainien ja juuripolun vertailemiseksi
$pattern = '/^(www\.)?example\.com\/?$/i';

// Tarkistetaan, vastaako pyydetty URL-osoite mallia
if (preg_match($pattern, $requestUri)) {
    // Ohjaa uudelleen haluttuun kohteeseen (tässä tapauksessa verkkosivuston pääkäyttäjään).
    header("Sijainti: https://example.com/");
    exit();
} else {
    // Käsittele muita tapauksia tai näytä virhesivu.
    echo "Sivua ei löytynyt";
}

Tässä koodissa säännöllinen lauseke '/^(www\.)?example\.com\/?$/i' vastaa URL-osoitteita kuten http://example.com/, https://example.com/, http://wwwexample.com/ja https://wwwexample.com/ tapauskohtaisesti. Jos pyydetty URL-osoite vastaa tätä mallia, se ohjataan osoitteeseen https://example.com/. Jos URL-osoite ei vastaa tätä mallia, voit käsitellä muita tapauksia tai näyttää virheilmoituksen tarpeen mukaan.

Huomaa, että saatat joutua mukauttamaan säännöllistä lauseketta erityisvaatimusten tai toimialueen vaihteluiden mukaan. Osoite i säännöllisen lausekkeen mallissa oleva muunnin tekee hakusanasta isojen ja pienten kirjainten suhteen epäherkän, jolloin se voi hakea isojen ja pienten kirjainten vaihteluita.

Huomaa, että uudelleenohjausten käsittely tällä tavalla voi olla tehokasta, mutta se vaatii myös huolellista harkintaa käytettyjen säännöllisten lausekkeiden suhteen, jotta vältetään tahattomat osumat ja uudelleenohjaussilmukat.