Support » Allmänna frågor » Egna rewrite rules direkt i .htaccess

Visar 1 svar - 1 till 8 (av 8 totalt)
  • Moderator Tor-Bjorn Fjellner

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    1. När du lägger in kod bör du markera den och märka den med hjälp av knappen ”code” för att den inte ska strula till visningen av forumet. Just i detta fall var det ingen fara, men det är bra att alltid göra detta för tydlighets och säkerhets skull.
    2. Denna fråga berör egentligen inte WordPress. Om den är konfigurerad för detta (vilket den brukar vara på de flesta vanliga webbhotell) kör webbservern Apache kommandona i .htaccess innan WordPress ens laddas in.
    3. Jag är inte säker på att jag förstod din fråga riktigt. Vad är det du vill åstadkomma?

    Den här raden i .htaccess utför följande:
    Om webbservern tar emot ett http-anrop där URL:en efter servernamnet har formen: ”serietabell/(nånting1)/nånting2/ så kommer webbservern att svara att webbläsaren i stället ska fråga efter index.php?page_id=75&league=nånting1&season=nånting2
    Flaggorna på slutet betyder:
    L = Last, d.v.s. sluta köra kommandon i resten av .htaccess
    R = Redirect, d.v.s. i stället för att bara hämta den begärda sidan under denna anpassade adress ska webbservern skicka tillbaka den ”maskinkorrekta” adressen till webbläsaren, så att webbläsaren själv begär in sidan.
    Det är alltså flaggan R som gör att URL:en i adressraden ändras. Dessutom tar det längre tid att ladda in sidan, eftersom webbläsaren hela tiden måste ”gå ett varv extra”.
    Om du tar bort flaggan R kommer den snyggare URL:en att stå kvar i webbläsaren (och servern kommer att skicka rätt sida i stället för ett omdirigeringskommando).
    Flaggan L kan du låta stå kvar om sidan laddas in korrekt (vilket jag tror att den kommer att göras). Om du tar bort flaggan L kommer även senare kommandon i .htaccess att tolkas, vilket kan ta någon millisekund extra.

    Det misstänkte jag men tar jag bort [R] så får jag istället resultatet http://se.aktuellspeedway.eu/serietabell/ då försvinner alltså min egna del helt.

    Tror att mina regler i själva verket inte är några större fel på. Felet ligger i att WP vill omvandla ?page_id=75 efter sina regler och då kör över mina. Ändrar jag tex idt till 89 får jag resultatet http://se.aktuellspeedway.eu/forare/.

    Det jag på något viss måste göra är att förhindra WP från att köra sina regler på dem sidorna jag vill komma åt.

    Sätter jag upp mina regler i functions.php med WP kommandon funkar det utmärkt, men problemet är att jag måste köra olika regler för olika webbsidor (Multi Site) och verkar inte gå att genomföra med WP kommandon.

    Greppar lite efter sista halmstrå för att slippa köra 13 olika installationer för egentligen samma sida.

    Moderator Tor-Bjorn Fjellner

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    WordPress kör ju sin egna specialare i .htaccess för att styra om allt till /index.php om man inte får direkt träff på verklig katalog och/eller fil.
    Finessen är att WordPress sedan tjuvkikar i en servervariabel för att hitta den ”ursprungligen begärda adressen”.
    Med andra ord skulle du med någon regel i .htaccess vilja ändra denna servervariabel. Jag vet inte om det går.
    Jag ska kolla lite snabbt om jag hittar något. Annars kanske du behöver ställa samma fråga på stackexchange, där man kan hitta riktigt duktigt folk.

    Moderator Tor-Bjorn Fjellner

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Moderator Tor-Bjorn Fjellner

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Eller flytta denna logik till WordPress:
    https://developer.wordpress.org/reference/functions/add_rewrite_rule/

    • Detta svar redigerades 1 vecka, 1 dag sedan av  Tor-Bjorn Fjellner. Anledning: Länken visades konstigt

    Som nämnt måste jag använda olika regler för olika sidor i mitt multi-nätverk och då funkar inte WPs add_rewrite_rule, då det inte finns liknande för rewriteCond..

    Ska studera länken du skickade och se om jag kan förstå något av det 😉

    Moderator Tor-Bjorn Fjellner

    (@tobifjellner)

    WordPress-hemmapulare, Projektledare, Författare, Översättare och Vänlig Själ

    Jag vet inte om man i .htaccess kan norpa saker från redirect och lägga in dem i request uri. Men man skulle ju kunna tänka sig att resultatet av en redirect måste hamna i en variabel, som du då kanske kan kopiera till request URI…

    Berätta gärna hur det går.

    Det finns inget sätt att definiera url för en rewrite rule via add_rewrite_rule() functionen? Mitt prblem bygger sig ju på att jag måste ha olika rewrite rules för olika sidor i multi-site nätverket

Visar 1 svar - 1 till 8 (av 8 totalt)
  • Du måste vara inloggad för att svara på detta ämne.