The Apache tīmekļa serveris ir viens no galvenajiem interneta elementiem, kas apkalpo vietnes un lietojumprogrammas. Tā ir sarežģīta sistēma ar daudzām iespējām, un viena no vissvarīgākajām ir Pārrakstīšanas modulis jeb īsāk sakot “mod_rewrite”. Šajā rakstā mēs apskatīsim mod_rewrite izmantošanas veidus, pēc tam izpētīsim, kā to iestatīt savā Apache balstītajā vietnē.
Apache pārrakstīšanas moduļa mērķis
Šī moduļa mērķis ir URL pārrakstīšana dažādos noderīgos veidos. Tas nozīmē, ka tad, kad lietotāji apmeklēs jūsu vietni, izmantojot vienu URL (vai nu ierakstot to, vai izvēloties saiti, kas satur to), viņi "nonāks" citā URL. Ieteicams to darīt vairāku iemeslu dēļ.
Lietotāju novirzīšana
Varat izmantot mod_rewrite, lai novirzītu lietotājus no vecākām, novecojušām lapām, kas joprojām var parādīties meklēšanas rezultātos, uz jaunākām, atjauninātām lapām. Piemēram, pieņemsim, ka jums ir lapa vietnē https://www.mysite.com/review2015; ja kāds to saskata kā saiti un to atlasa, varat izmantot pārrakstīšanas kārtulu, lai viņu novirzītu http://www.mysite.com/review2019.
Vieglāk atcerēties vietrāžus URL
Jūs, iespējams, esat redzējis saites, kas saistītas ar e-komerciju ar tādiem vietrāžiem URL kā https://www.thestore.net/3d78654954c29ace998658. Izstrādātāji izmanto šādas etiķetes, lai pārliecinātos, ka vienumiem ir unikāls identifikators, bet netehnikas tipiem to ir grūti atcerēties.
Par laimi, atkārtotas rakstīšanas kārtula var palīdzēt jums publicēt patīkamu URL, piemēram, https://www.thestore.net/notebooks/spiral/3-subject-spiral/, kas, sekojot, noved apmeklētāju pie tā, kura URL ir neglīts.
Unikāli lapu nosaukumi
Tīmekļa sākuma dienās, apmeklējot vietni, bija ierasts redzēt faktisko lapu failu nosaukumu. Piemēram, vietnes "Par mums" lapa var būt http://www.someguys.org/about.html."
Bet ir vairāki iemesli, kāpēc jūs vairs tos daudz neredzat. Pirmais ir tas, ka daudzas vietnes pārvalda satura pārvaldības sistēmas, kurās ir tikai daži faktiskie lapu faili. Pārējā satura daļa tiek dinamiski pievienota, kad lapa tiek apkalpota, tāpēc visām lapām var izskatīties tāds pats URL kā “ http://www.someguys.org/index.php." URL pārrakstīšana ļauj jums izskatīties šajās atsevišķās lapās, vienlaikus pārvaldot savu vietni, izmantojot dinamisko CMS.
Saprotamāki vietrāži URL
Meklētājprogrammas lapas ierindo augstāk, ja tām ir viegli saprotami URL. Tas nozīmē, ka vietnēm ir izdevīgi izmantot tādu URL kā " https://www.thecompany.com/services/consulting" tā vietā " https://www.thecompany.com/index.php? section = services & page = consulting, "tā kā pēdējā daļa izskatās vairāk kā kods, nevis URL.
Pārrakstīšana nodrošina, ka vienmēr no URL viedokļa skatāties uz priekšu vislabāko seju.
Kā iestatīt mod_rewrite savā vietnē
Lai izmantotu URL pārrakstīšanu Apache, ir nepieciešami divi galvenie komponenti:
- Iespējojot faktisko pārrakstīšanas moduli Apache
- Nepieciešamo pārrakstīšanas kārtību uzskaitīšana .htaccess failā.
Lai gan URL pārrakstīšana tiek izmantota vienādi arī ar citiem tīmekļa serveriem, piemēram, IIS vai nginx, mod_rewrite un tālāk norādītās metodes attieksies tikai uz Apache.
Iespējojiet funkciju Pārrakstīt
Pirmkārt, Apache instalācijā būs jāieslēdz pārrakstīšanas funkcija.
-
Jums būs jāatrod, kur atrodas jūsu Apache konfigurācijas fails. Tas būs atkarīgs no instalētāja, kuru izmantojāt.
- Sistēmā Windows Apache instalēšanas direktorijā jāmeklē direktorija ar nosaukumu "/ conf".
- MacOS populārajā XAMPP instalētājā tas atrodas mapē / Applications / XAMPP / xamppfiles / apache2 / conf.
- Operētājsistēmā Linux tas parādīsies direktorijā / etc / apache2. Jebkurā gadījumā jūs meklējat failu ar nosaukumu "httpd.conf", "http.conf" vai "apache2.conf", lai to meklēšanai izmantotu arī savas OS meklēšanas funkciju.
Atveriet konfigurācijas failu, piemēram, teksta redaktorā Windows piezīmju bloks vai Teksta rediģēšana uz MacOS.
Meklējiet rindiņu "#LoadModule rewrite_module modules / mod_rewrite.so" un sākumā noņemiet atsauci. Tas apzīmē komentāru, kas nozīmē, ka tad, kad tas ir pieejams, Apache serveris ignorēs visu šajā līnijā. Noņemiet tēmturi un nākamreiz, kad Apache izpildīs šo rindu, kad tā startēs.
Saglabājiet konfigurācijas failu un restartējiet Apache serveri.
-
Alternatīvi, dažās Linux versijās jūs redzēsiet dažus direktorijus, piemēram, "/ etc / apache2 / mods-available" un "/ etc / apache2 / iespējots mods". Tie satur konfigurācijas failu bitus, kas ir salikti kopā dinamiski. Šajā gadījumā varat palaist šādas komandas, lai vispirms iespējotu moduļa pārrakstīšanu, pēc tam restartējiet Apache serveri:
sudo a2enmod pārrakstīt
systemctl restartējiet apache2 Tagad jūsu Apache serveris ir gatavs jums pārrakstīt URL. Tikai tagad jums jāpasaka, kurus pārrakstīt un kādos apstākļos.
Mod_Rewrite kārtulu noteikšana jūsu vietnē
Jums būs jādefinē mod_rewrite kārtulas, izmantojot regulārās izteiksmes valodu. Par laimi, ir pieejama kāda palīdzība. Konkrētai pārrakstīšanai, kuru vēlaties iespējot, varat izmantot tādu rīku kā VisioSpark kārtulu ģenerators.
Ievadiet vietrādi URL, no kura vēlaties pārrakstīt, t.i., to, kuru ievadīs lietotājs No: laukā.
-
Vietnē ievadiet vietrādi URL, uz kuru vēlaties pārrakstīt, t.i., to, kurā lietotājs nonāks Kam: laukā.
-
Atlasiet Captcha vadību un pēc tam atlasiet Ej. Pēc tam ģeneratoram jāsniedz rezultāts, kas sākas ar "RewriteRule.
Ja jums gadās atrast citu ģeneratoru, šīs darbības var būt nedaudz atšķirīgas, bet, cerams, tajā pašā bumbu laukumā.
Vietnes Mod_Rewrite kārtulu ievadīšana
Tas ir lielisks veids, kā izveidot un noklikšķināt, lai izveidotu šos noteikumus. Bet kur jūs tos ievietojat?
Lai vietnē izmantotu kārtulas, vietnes saknē jāizveido fails ar nosaukumu .htaccess. Tas ir nedaudz atkarīgs no platformas, kur tiek glabāti faili konkrētai vietnei, taču, lai izvietotu savu vietni tur, jums to vispirms vajadzēs saprast.
Iespējams, ka jau ir fails ar šādu nosaukumu. Ja tā, lieliski! Jūs varat vienkārši pievienot rindas šim failam.
Izveidojiet jaunu teksta failu ar nosaukumu ".htaccess"jūsu vietnes saknē.
-
Pirmajā rindiņā ievadiet zemāk esošo kodu. Tas serverim norāda, ka vēlaties iespējot pašreizējās vietnes pārrakstīšanu.
RewriteEngine on ieslēgts
-
Pēc tam pievienojiet katru no līnijām, kuras izveidojāt ar ģeneratoru. Mūsu faila sākums izskatīsies šādi:
RewriteEngine on ieslēgts
RewriteRule ^ piezīmju grāmatiņas / spirāle / 3 priekšmetu spirāle / $ / 3d78654954c29ace998658? &% {QUERY_STRING} Tāpat kā jebkuras Apache konfigurācijas izmaiņas gadījumā, ieteicams restartēt serveri.
Mod_Rewrite izmantošana prasa laiku, bet rezultāti ir tā vērti
Funkcijas mod_rewrite izmantošana Apache noteikti prasa zināmas pūles. Jums jācīnās ar teksta konfigurācijas failiem, jāizdomā veids, kā šajos failos iegūt ļoti smalkas regulāras izteiksmes, un jāzina, kā manuāli apturēt un restartēt pakalpojumu. Tas, visticamāk, prasīs daudz izmēģinājumu un kļūdu, pirms saņemat kaut ko tādu, kas nerada kļūdu un darbojas pareizi.
Tas nozīmē, ka, tiklīdz jūs to nokārtosit, jūs saņemsiet lielu labumu no mod_rewrite. Apmeklētāji varēs labāk atcerēties jūsu vietrāžus URL, un, iespējams, uzlabosies jūsu vērtējums Google tīklā. Rezultātā iegūtie "glītie URL" nav paredzēti tikai rādīšanai. Viņi arī ir funkcionāli.