Mod_rewrite Uvod in Cheat Sheet – Kratka navodila

Razkritje: Vaša podpora pomaga pri vzdrževanju spletnega mesta! Za nekatere storitve, ki jih priporočamo na tej strani, zaslužimo naročnino.


mod_rewrite je del programske opreme spletnega strežnika Apache, ki deluje na računalniku vašega spletnega gostitelja. Omogoča dinamično spreminjanje ali ponovno pisanje URL-jev.

Če uporabljate WordPress z vklopljenimi “lepimi” trajnimi povezavami, boste videli mod_rewrite. Privzeto se vse strani WordPressa naložijo z URL-jem, ki vsebuje ID številko in morda druge spremenljivke, ki povedo WordPressu, kaj naj naložijo. Ko pa so omogočene precej trajne povezave, mod_rewrite pravila spremenijo te grde spremenljivke v besede. Rezultate URL-jev včasih imenujemo “čisti”.

Ponovno pisanje z mod_rewrite je v bistvu postopek prevajanja URL-ja iz umazanega v čist. Obiskovalec nikoli ne vidi spremembe naslova v naslovni vrstici, saj obdelavo opravi Apache, preden je karkoli poslano v brskalnik obiskovalca..

Popolnoma je mogoče zagnati spletno mesto brez uporabe mod_rewriteta ali čistega URL-ja. Toda tu ga večina uporablja:

  • Za lažje branje URL-jev. “Lepi” URL-ji so bolj zapomnjeni, lažje jih je vtipkati in jih je lažje brati na glas.
  • Za lažje razlago naslovov URL. Lep URL pove iskalniku o tem, kaj je na strani, vendar kopica ID številk in spremenljivk ne. Iskalniki obožujejo semantiko, zato ponovno zapisovanje URL-ja pomaga zagotoviti, da je stran pravilno razvrščena in indeksirana.
  • Začasno ustvarite preusmeritve iz ene datoteke ali poti v drugo.

Sestavljanje mod_rewrite pravil

Če uporabljate Apache, prosite svojega spletnega gostitelja, naj v datoteko http.conf v računu omogoči mod_rewrite. Mod_rewrite je v mnogih primerih privzeto omogočen.

Nato boste morali ustvariti datoteko .htaccess v korenskem imeniku vašega računa za gostovanje. Datoteka .htaccess nadzoruje korenski imenik in vse datoteke pod njim, razen če ga preglasite z drugo datoteko .htaccess spodaj pod drevesom mape. Če že imate datoteko .htaccess, naredite varnostno kopijo, preden nadaljujete.

Pravila za prepisovanje imajo dva dela. Prva vrstica aktivira direktivo za prepisovanje motorja v Apache. (Vrstica, ki se začne z #, je komentar, ki se prezre.) Drugi del izjave mod_rewrite pove motorju za prepisovanje, kako naj se pretvori URL. Torej navedemo stanje in nato Apache povemo, kaj naj naredijo. Tu je primer pravila, ki obiskovalca preusmeri iz ene datoteke v drugo.

# Vklopite ponovno pisanje
NapisatiEngine naprej
# Pretvori oldname.html v newname.html
RewriteRule ^ oldname.html $ newname.html

To pravilo preverja, ali obstaja datoteka z imenom oldname.html (pogoj). Če najde ujemanje, ga dinamično nadomesti z novim imenom.html. Končni uporabnik vidi vsebino oldname.html, a newname.html v URL-vrstici brskalnika. Če se mod_rewrite ne ujema z oldname.html, bi bilo to pravilo prezrto.

Iščete vzorce

Ustvarjanje enega pravila za vsak URL bi trajalo veliko časa, zato moramo uporabljati redne izraze. Redni izrazi iščejo vzorce in en kos vrvice nadomestijo z drugim. Vzemite ta primer:

# Vklopite ponovno pisanje
NapisatiEngine naprej
# Spremeni avtorja / NAME / v avtor.php? Id = NAME
RewriteRule ^ avtor / ([a-z] +) /? $ Author.php? Id = $ 1 [L]

Če ga razčlenite, je opisano, kako deluje pogoj ^ avtor / ([a-z] +) /? $:

  • ^ je začetek pravila
  • avtor / je niz, ki ga iščemo v izvirnem URL-ju
  • ([a-z] +) je nadomestni znak – išče besede, ki se pojavijo po avtorju /
  • /? doda poševnico na koncu URL-ja
  • $ označuje konec pogoja.

In tako deluje avtor.php? Id = 1 $:

  • author.php? id = je niz, ki ga želimo napisati
  • $ 1 je nadomestno mesto za besede, ki smo jih našli zgoraj.

Na koncu pravila je [L] zastava, ki Apacheu sporoči, naj preneha uporabljati več pravil, če bo ta obdelana.

To je le zelo osnovni primer, kaj lahko mod_rewrite naredi. Namesto da bi napisali [a-z], bi lahko uporabili [xyz], da bi našli črke x, y ali z, ali (y | n), da bi našli y ali n. V spodnjih virih najdete popolnejše sklice na skladnjo regularnega izraza.

RewriteRule zastave

V zgornjem primeru smo na koncu pravila dodali zastavico [L]. Oznake niso obvezne. Vključiti jih je treba v en sklop kvadratnih oklepajev na koncu vrstice in če želite uporabiti več zastavic, morate med njimi postaviti vejice.

Oznake lahko izpišete v celoti ali v skrajšani različici. Medtem ko je območje s kratkimi zastavami lažje vnesti, je uporaba dolgih zastavic dobra ideja, če želite olajšati branje svoje kode.

  • B: pobegne od ne-alfanumeričnih znakov; lahko zahteva AllowEncodedSlashes nastavljeno na On.
  • C ali veriga: priklopi pravilo za naslednje pravilo v datoteki .htaccess; drugi se izvrši le, če prvi rezultira na tekmi.
  • CO ali piškotek: ustvarite piškotek, ko se pravilo ujema; zahteva dodatne atribute.
  • DPI ali discardpath: v prepisanem URL-ju zavrže PATH_INFO.
  • E ali env: nastavi spremenljivko okolja.
  • KRAJ: podobno kot L, s tem ustavi več obdelave prepisa.
  • F ali prepovedano: vrne stanje 403 Prepovedano z odgovorom na pravilo.
  • G ali več: vrne status 410 Gone z odgovorom na pravilo.
  • H ali manipulator: prisili pravilo, da uporablja določen rokovalnik, ki je določen kot spremenljivka.
  • L ali zadnji: ustavi obdelavo pravil.
  • N ali naslednje: znova zažene trenutni niz pravil, pri čemer uporabi rezultat pravila kot vhod.
  • NC ali nocase: za pravilo izključi občutljivost velikih in malih črk.
  • NE ali noescape: pretvori posebne znake v njihove enakovredne šestnajstiške kode.
  • NS ali nosubreq: ustavi, da bi se prepisi ponovno uporabljali za podprostore.
  • P ali proxy: potisne rezultat pravila na mod_proxy in prezre preostala pravila.
  • PT ali prehod: pretvori pot datoteke v URL.
  • QSA ali qsappend: združuje poizvedbeni niz z novim.
  • QSD ali qsdiscard: zavrže stari niz poizvedb in ga nadomesti.
  • QSL ali qslast: razdeli poizvedbeni niz na zadnji vprašalni znak v nizu.
  • R ali preusmeritev: izdajte preusmeritev HTTP.
  • S ali preskoči: preskoči številna pravila; mora biti definirano kot [S = n], kjer je n število pravil, ki jih je treba preskočiti.
  • T ali tip: Nastavi tip MIME odgovora na pravila.

kupon za spletno gostovanje

Iščete veliko za mod_rewrite gostovanje?
A2 gostovanje je na naših nedavnih hitrostnih testih doseglo # 1. Trenutno lahko prihranite do 50% na njihovih načrtih za razvijalce. Uporabite to povezavo za popust
da se dogovori.

Spremenljivke strežnika

Spodnji seznam vsebuje veliko spremenljivk strežnika, nekatere od njih boste lahko uporabljali z mod_rewrite. Vsi strežniki ne podpirajo vseh spremenljivk in enako lahko morda uporabljate tudi spremenljivke strežnika, ki niso navedene tukaj.

Če že veste za glave HTTP, vam bodo mnoge spremenljivke strežnikov na tem seznamu poznane, vendar obstaja nekaj takih, ki so posebej namenjene za uporabo z mod_rewrite.

  • API_VERSION: datum različice API-ja.
  • AUTH_TYPE: avtentip; vrne NONE, BASIC, DIGEST ali FORM.
  • CONN_REMOTE_ADDR: IP naslov enakovrednega.
  • CONTEXT_DOCUMENT_ROOT: podatki o mapiranju map v Apacheu.
  • CONTEXT_PREFIX: informacije o mapiranju map v Apacheu.
  • DOCUMENT_ROOT: absolutna pot dokumenta.
  • HANDLER: ime obdelovalca.
  • HTTP_ACCEPT: glava sprejema HTTP, če je prisotna v glavi zahteve HTTP.
  • HTTP_COOKIE: piškotek, če je prisoten v glavi zahteve HTTP.
  • HTTP_FORWARDED: dejanska pot, če je prisotna v glavi zahteve HTTP.
  • HTTP_HOST: trenutni strežnik, če je prisoten v glavi zahteve HTTP.
  • HTTP_PROXY_CONNECTION: pot proxy HTTP, če je prisotna v glavi zahteve HTTP.
  • HTTP_REFERER: URL referenčne strani.
  • HTTP_USER_AGENT: uporabniški agent, ki je bil uporabljen za dostop do strani.
  • HTTP2: ali povezava uporablja HTTP2; vrne ON ali OFF.
  • HTTPS: ali povezava uporablja HTTPS; vrne ON ali OFF.
  • IPV6: ali povezava uporablja IPVS; vrne ON ali OFF.
  • IS_SUBREQ: ali je zahteva podvprašanje; pravilno ali napačno.
  • PATH_INFO: podatki o poti, ki sledijo ime datoteke.
  • QUERY_STRING: znaki v URL-ju, za vprašanjem.
  • REMOTE_ADDR: uporabnikov IP.
  • REMOTE_HOST: uporabnikovo popolno ime domene.
  • REMOTE_USER: uporabniško ime overjenega uporabnika.
  • REMOTE_IDENT: uporabniško ime overjenega uporabnika, vrnjeno z identd.
  • REQUEST_FILENAME: lokalna pot do datoteke ali skripta v zahtevi.
  • REQUEST_METHOD: metoda zahteve; GLAVA, PUT, GET ali POST.
  • REQUEST_SCHEME: shema v URI zahteve.
  • REQUEST_URI: URI zahteve kot pot.
  • SCRIPT_FILENAME: absolutna pot skripta.
  • SCRIPT_GROUP: ime skupine skriptov.
  • SCRIPT_USER: uporabnik, ki je lastnik skripta.
  • SERVER_ADDR: IP strežnika, v katerem je shranjena .htaccess datoteka.
  • SERVER_ADMIN: skrbnik strežnika, konfiguriran v Apacheu.
  • SERVER_NAME: ime strežnika, kot je konfigurirano v Apacheu.
  • SERVER_PORT: številka vrat, na katero je bila poslana zahteva.
  • SERVER_PROTOCOL: protokol in revizija zahteve.
  • SERVER_SIGNATURE: različica strežnika in ime gostitelja.
  • SERVER_SOFTWARE: niz ID za strežnik.
  • THE_REQUEST: zahteva v celoti.
  • ČAS: datum in čas v obliki LLLLLMDDHHMMSS.
  • TIME_DAY: trenutni dan.
  • TIME_HOUR: trenutna ura.
  • TIME_MIN: trenutna minuta.
  • TIME_MON: tekoči mesec.
  • TIME_SEC: trenutna sekunda.
  • TIME_WDAY: trenutni dan, vrnjen kot številka (začenši z 0 za nedeljo).
  • TIME_YEAR: tekoče leto.

Viri

  • Vodnik za začetnike Mod_rewrite: ta priročnik je iz leta 2004, vendar nudi dobro podlago v načelih mod_rewrite.
  • Prepisovanje URL-jev za začetnike: izčrpen vodnik za začetnike in srednje uporabnike.
  • Apache Rewrite cheatsheet: različica HTML goljufije, ki je bila prvotno objavljena na iLoveJackDaniels.com.
  • Uvod v napredne pravilne izraze: s tem vodnikom razvijajte svoje znanje o pravilnih izrazih.
  • RegEx Pal: preverite svojo sintago regularnega izraza, preden jo postavite na svoje spletno mesto.

Povzetek

mod_rewrite je koristen in močan način za nadzor vedenja Apache. Z mod_rewrite lahko počnete marsikaj, česar tukaj nismo zajeli. Ti vključujejo preusmeritev, preprečevanje vročih povezav, prepoved določenih obiskovalcev z vašega spletnega mesta in še več. Najboljši način za izkoriščanje mod_rewrite je spoznavanje pravilnih izrazov.

Nadaljnje branje in viri

Imamo več vodnikov, vadnic in infografik, povezanih s spletnim razvojem:

  • PHP Uvod in viri: preberite vse o najbolj priljubljenem zalednem jeziku, ki se uporablja v spletu.
  • Mrežno programiranje z internetnimi vtičnicami: izvedejte vse o mrežnih omrežjih na internetu.
  • Uvod in viri MySQL: MySQL je ena izmed najbolj priljubljenih baz podatkov na internetu.

Kako izbrati pravi CMS

Niste prepričani, kakšen CMS želite uporabljati? Oglejte si naš članek, Kako izbrati pravi CMS.

Vrhunski seznam orodij za spletne skrbnike A-Z
Kako izbrati pravi CMS

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map