Aloittelijan opas .htaccessille suunnittelijoille ja kehittäjille
Web-palvelimen mukauttamiseen käytettävien monien eri työkalujen joukossa .htaccess-asetustiedosto on valtava voimavara. Sinä pystyt Nollaa nopeasti asiakirjatyypit, jäsentävät moottorit, URL-uudelleenohjaukset, ja monia muita keskeisiä ominaisuuksia. Verkkovastaavat, jotka eivät ole kovin teknisiä, eivät välttämättä pääse omaan .htaccess-tiedoston hallintaan. Mutta aihe itsessään on kiehtova ja kannattaa tutkia.
Tässä artikkelissa haluan esitellä joitakin tarkoituksenmukaisempia käsitteitä ylläpitäjille ja web-kehittäjille. Kuka tahansa käynnistää oman verkkosivustonsa Apache-palvelimella haluaa varmasti ymmärtää, miten hallita .htaccess-tiedostoa. Se tarjoaa niin paljon muokattavuutta ja se voi toimia kaikilla web-kielillä PHP: stä Rubyyn.
Tämän viestin alareunassa olen lisännyt joitakin ulkoisia web-tiedostoja auttaa uusia tulokkaita luomaan .htaccess-tiedostot dynaamisesti.
Miksi käyttää .htaccess-tiedostoa?
Tämä on suuri kysymys, ja ehkä meidän pitäisi aloittaa vastaamalla “mikä on .htaccess-tiedosto”? Se on hyvin erikoinen kokoonpanotiedosto, jota Apache-verkkopalvelin käyttää. .Htaccess-tiedosto voi kertoa web-palvelimelle miten esitellä erilaisia tietomuotoja ja miten käsitellä erilaisia HTTP-pyyntöjen otsikoita.
Todella se on keino hajauttaminen järjestää Web-palvelimen asetuksia. Yksi fyysinen palvelin voi sisältää 50 eri sivustoa, joissa kullakin on oma .htaccess-tiedosto. Se antaa paljon virtaa webmastereille, mikä muuten olisi mahdotonta. Mutta miksi sinun pitäisi käyttää sitä?
Suurin syy on turvallisuus. Sinä pystyt lukitse tietyt hakemistot tai suojaa ne salasanalla. Tämä sopii erinomaisesti yksityisiin hankkeisiin tai uusiin Content Management Systems -järjestelmiin, joissa haluat hieman ylimääräistä turvallisuutta. Mutta on myös yleisiä tehtäviä, kuten 404-virhesanomien uudelleenohjaus tietylle verkkosivulle. Tämä kestää vain yhden koodirivin ja se voi dramaattisesti vaikuttaa siihen, miten kävijät reagoivat puuttuviin sivuihin.
Oikeastaan ei ole paljon sanottavaa vakuuttaa muita, että .htaccess-tiedosto on ymmärrettävää. Kun näet sen toiminnassa, voit tunnistaa kaiken tämän pienen konfigurointitiedoston arvon. Toivon myös, että tämän artikkelin loppuosa saattaa esittää joitakin oivaltavia aiheita, joiden avulla webmasterit voivat hallita .htaccess-asetuksia.
Salli / estä käyttö
On mahdollista tunnistaa mahdolliset roskapostin kävijät ja estää heiltä pääsyn sivustoosi. Tämä voi olla hieman äärimmäinen, mutta jos tiedät, että henkilö tai ryhmä ihmisiä on kohdistanut sivustoosi, on joitakin vaihtoehtoja. Voit valita verkkotunnuksen viittauksen, jos haluat estää tai kieltää kävijöitä IP-osoitteella.
tilaus sallii, kieltää kieltää 255.0.0.0 kieltää 123.45.6. sallia kaikki
Nämä mallikoodit kopioitiin Htaccess-oppaasta, koska ne ovat täydellinen malli aloitettavaksi. Huomaa, että toinen IP-osoite puuttuu neljännestä kokonaisluvusta. Tämä koodilohko kohdistuu ensimmäiseen IP: hen (255.0.0.0) ja jokaiseen IP: hen alueella 123,45,6,0-255, salli sitten kaikki muut liikennemäärät. Verkkovastaavat eivät saa käyttää tätä yhtä usein kuin muut tekniikat, mutta on hyödyllistä ymmärtää.
Estä luetteloluettelo
On aikoja, jolloin sinulla on avoin hakemisto, joka on asetettu sallimaan selaamisen oletusarvoisesti. Tämä tarkoittaa, että käyttäjät voivat tarkastella kaikkia sisäisen hakemistorakenteen sisällä olevia tiedostoja, kuten kuvakansiota. Jotkut ylläpitäjät eivät halua sallia hakemistoluetteloa ja onneksi koodinpätkä on melko helppo muistaa.
Valinnat -Luvut
Olen nähnyt tämän vastauksen lukemattomia kertoja kaikkialla Stackin ylivuodossa, ja se voi olla yksi helpoimmista .htaccess-sääntöistä muistaa.
On todella mahdollista luoda useita .htaccess-tiedostoja kussakin näistä hakemistoista joten ehkä yksi niistä on suojattu salasanalla, mutta muut eivät. Ja voit silti pitää Valinnat -Luvut jotta kävijät eivät voi selata sivustosi / kuvia / kansiota.
Salasanasuojaus
Hakemistojen suojaaminen salasanalla on hyvin yleinen menettely varmistamalla hallinnolliset alueet ja muut kansiot, jotka ovat tärkeitä sivustosi kannalta. Joskus haluat vain tarjota pääsyn pienelle joukolle ihmisiä. Muina aikoina salasanat estävät hakkereita pääsemästä sivustosi hallintapaneeliin. Mutta kumpikin tapa on erittäin tehokas ratkaisu moniin ongelmiin.
On kätevä opas salasanasuojauksesta, jossa hahmotellaan tärkeät koodinpätkät. Sinun täytyy luo salasanatiedosto, joka tallentaa käyttäjätunnuksen / salasanan tiedot. Näin Apache voi tarkistaa, mitä käyttäjä syöttää, jotta he näkisivät, olisiko heille myönnettävä pääsy. Ja huomaa, miten sinun täytyy luoda näyte käyttäjätunnuksellesi ja salasanallesi.
Suosittelen tämän htpassword-generaattorin käyttöä, jotta voit säästää vähän aikaa. Syntaksi tulee aina täydelliseksi, eikä salasanaa tarvitse salata itse. Ja toinen suuri vaihtoehto on suojata koko hakemistolista. Näemme tämän esimerkin CSS-Tricks-koodinpätkägalleriassa.
AuthType Basic AuthName "Tämä alue on suojattu salasanalla" AuthUserFile /full/path/to/.htpasswd Vaaditaan kelvollista käyttäjää
Suojaus WordPressille
Jotta tämä salasanasuojauside olisi hyvä käyttää, näytetään todellinen esimerkki. Tämä monimutkaisempi koodinpätkä tulee pakottaa käyttäjän todentaminen kenelle tahansa, joka käyttää WordPress wp-login.php-tiedostoa. Löydät alkuperäisen lähdekoodin Ask Apache -palvelusta, jossa on lukuisia muita WordPress-suojauksen katkelmia.
Tilauksen kieltäminen, salli kieltää kaikki tyydyttävät kaikki AuthName "Protected by AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType-perusvaatimus Vaaditaan kelvollista käyttäjää
Ja jos aiot noudattaa näitä .htaccess-sääntöjä, se voi myös auttaa suojaamaan admin-aluetta. Tyypillisesti WP-login.php tiedosto tulee saamaan eniten osumia ihmisiltä, jotka yrittävät harjoittaa tietä järjestelmään. Joten vain yllä olevat näytekoodit olisivat lisää turvallisuutta WordPress-sivustoosi.
HTTP-URL-osoitteiden uudelleenkirjoitussäännöt
URL-osoitteiden uudelleenkirjoittaminen on luultavasti yksi yleisimmistä .htaccess-tiedostojen käyttötavoista. WordPressin oletusasennukset voivat todella luo .htaccess-tiedosto suoraan hallintapaneelista. Tämän avulla voit luoda kauniita URL-osoitteita, joilla ei ole .php? P = 1 -rakennetta.
Haluan tarkastella tätä uudelleenkirjoitusesimerkkiä miten päivittää viittauksia viivoihin koska se sisältää paljon tärkeimpiä elementtejä.
Vaihtoehdot + FollowSymLinks RewriteEngine Käytössä RewriteBase / RewriteRule! (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Kyllä] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Kyllä] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Kyllä] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Kyllä] RewriteCond% ENV: uscor ^ Kyllä $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
RewriteEngine ja RewriteBase voidaan aina asettaa näille tarkoille arvoille. Mutta tarvitset RewriteEngine-toiminnon, jotta mitään muuta voitaisiin tehdä. Verkossa on paljon oppaita, joissa selitetään, miten mod_rewrite ja hosting-palveluntarjoajasi voivat myös auttaa.
Huomaa, että syntaksi seuraa RewriteRules huipulla. Nämä säännöt ovat tottuneet vastaa tapauksia, jotka lähetetään HTTP-pyynnönä. Näihin vastaa RewriteRule, joka tässä tapauksessa ohjaa kaiken verkkotunnukseen d.com. Lopullisia sulkeja, kuten [R = 301, L], kutsutaan uudelleen kirjoitettaviksi lipuiksi, jotka ovat tärkeitä, mutta enemmän kehittyneitä aiheita.
Mod_rewrite-syntaksi on varmasti hieman hämmentävä, mutta ei pelotella! Luvut voivat näyttää paljon helpommin muissa esimerkeissä.
Kun juuri aloitat, minun on suositeltava tätä mod_rewrite webappia, joka auttaa luomaan koodinäytteitä todellisten URL-osoitteiden avulla. Tämä on loistava työkalu, koska voit etsiä syntaksiin erilaisia kohteita nähdäksesi, mitä he todella tekevät uudelleenkirjoitussäännöissä. Tässä on toinen hyvä opetusohjelma, jossa on yksinkertaisempi esimerkki oppimisesta:
RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L]
Älä yritä ylikuormittaa näitä kaikkia kerralla. Se vei minut yli 3-4 kuukautta, jotta voisin todella ymmärtää, miten URL-osoitteet kirjoitetaan uudelleen [0-9a-zA-Z] +: lla ja vastaavilla kuvioilla. Jatka harjoittelua ja lupaan ajoissa, että saat tämän kaltaisen tavan, kuten se on järkevää tietoa.
Koodinpätkät Webmastereille
Rakastan helppokäyttöisiä katkelmia ja haluan koota tämän pienen kokoelman web-ylläpitäjille tarkoitetuista .htaccess-koodeista. Kukin näistä ideoista sopii hyvin omaan .htaccess-tiedostoon muiden koodilohkojen kanssa. Useimmat näistä katkelmista ovat hyviä nopeiden ongelmien tai korjausten ratkaiseminen Web-palvelinympäristössä. Kuvittele täydellinen Apache-asetus upeille uusille webmastereille, jotka ovat juuri aloittamassa verkossa.
Asetus DirectoryIndex
DirectoryIndex-komentoa käytetään yleisesti yhdessä rivissä. Voit kertoa Apacheille, mitä asiakirjoja aluksi pitää “tärkein” asiakirja. Oletuksena tämä tulee kohdistetaan kohteita, kuten index.html, index.php, index.asp ja muut hakemistotiedostot. Mutta käyttämällä tätä koodinpätkää, jonka olen kopioinut alla, sinulla on kyky tehdä tämä juuriasiakirja haluamallasi tavalla.
DirectoryIndex index.html index.cgi index.php
Asiakirjojen järjestyksen pitäisi alkaa tärkeimmistä ja siirtyä joukkoon vähiten tärkeisiin. Joten jos meillä ei ole HTML- tai CGI-tiedostoa, varmuuskopio menee index.php. Ja voit jopa nimetä nämä tiedostot home.php tai someotherfile.php ja se on kaikki kelvollinen syntaksi.
Pakota WWW tai ei-WWW-aliverkkotunnus
Google ei voi määrittää sivustosi verkkotunnuksen molempia versioita www.domain.com tai vain domain.com. Kokemukseni mukaan se on paras käytäntö valitse yksi näistä ja aseta se ainoaksi vaihtoehdoksi kautta .htaccess. Sitten Google ei indeksoi erilaisia URL-osoitteita, joiden osalla on WWW-aliverkkotunnus, kun taas toiset eivät.
# Pakota WWW-aliverkkotunnus RewriteEngine päälle RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Ei aliverkkotunnusta uudelleenkäyttäytyminenRewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Tämä koodinpätkä on peräisin CSS-Tricks-arkistosta ja tarjoaa erittäin kätevän ratkaisun. Sinun pitäisi päivittää verkkotunnus mitä tahansa tarvitset omalle sivustollesi. Muuten on ongelmia ja huomaat heti! Mutta kannatan erittäin voimakkaasti yhtä näistä kahdesta vaihtoehdosta ja se on tehtäväluetteloni yläosassa uuden verkkosivuston käynnistämisen jälkeen.
Pakota mediatiedostojen lataukset
Toinen melko tärkeä pätkä sallii tiettyjen mediatyyppien pakottamisen ladata sen sijaan, että ne näkyisivät selaimessa. Välittömästi voin ajatella PDF-dokumentteja ja MP3-äänitiedostoja, jotka voidaan esittää ladattavassa muodossa, mutta miten sinä varmista, että ne ovat ladattavissa? Löysin samanlaisen artikkelin, joka julkaistiin Htaccess-oppaassa, jossa esitetään tämän koodinpätkä.
AddType-sovellus / octet-stream .zip .mp3 .mp4
Voit vapaasti lisätä vielä enemmän tiedostotyyppejä tämän rivin lopussa. Kaikki octet-stream MIME -tyyppiä käyttävät mediaformaatit ladataan. Tämän pakottaminen .htaccessin kautta on erittäin suora reitti, jolla varmistetaan, että ihmiset eivät voi tarkastella näitä tiedostoja selaimessa.
Mukautetut virhetiedot
Viimeinen viimeinen kappale, jonka haluan lisätä, on mukautettu virheasiakirjojen täydellinen malli. Yleensä nämä numerokoodit näkyvät vain palvelimen päässä. Mutta on paljon näitä virheasiakirjoja, jotka sinun pitäisi tuntea. Muutamia esimerkkejä voisi olla 403/404 virheitä ja 301 uudelleenohjaus.
Tämä virhekoodi malli alkaa 100: sta ja siirtyy ylöspäin 500 virheeseen. Huomaa, että et selvästikään tarvitse niitä kaikkia. Ainoastaan yleisimmät virheet ovat välttämättömiä ja mahdollisesti muutama epäselvä pätkä, jos tuntuu tarpeesta.
Jos et tunnista koodia, katso vain se Wikipediasta saadaksesi paremman ymmärryksen.
ErrorDocument 100 / 100_CONTINUE ErrorDocument 101 / 101_SWITCHING_PROTOCOLS ErrorDocument 102 / 102_PROCESSING ErrorDocument 200 / 200_OK ErrorDocument 201 / 201_CREATED ErrorDocument 202 / 202_ACCEPTED ErrorDocument 203 / 203_NON_AUTHORITATIVE ErrorDocument 204 / 204_NO_CONTENT ErrorDocument 205 / 205_RESET_CONTENT ErrorDocument 206 / 206_PARTIAL_CONTENT ErrorDocument 207 / 207_MULTI_STATUS ErrorDocument 300 / 300_MULTIPLE_CHOICES ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument 302 / 302_MOVED_TEMPORARILY ErrorDocument 303 / 303_SEE_OTHER ErrorDocument 304 / 304_NOT_MODIFIED ErrorDocument 305 / 305_USE_PROXY ErrorDocument 307 / 307_TEMPORARY_REDIRECT ErrorDocument 400 / 400_BAD_REQUEST ErrorDocument 401 / 401_UNAUTHORIZED ErrorDocument 402 / 402_PAYMENT_REQUIRED ErrorDocument 403 / 403_FORBIDDEN ErrorDocument 404 / 404_NOT_FOUND ErrorDocument 405 / 405_METHOD_NOT_ALLOWED ErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICT ErrorDocument 410 / 410_GONE ErrorDocument 411 / 411_LENGTH_REQUIRED ErrorDocument 412 / 412_PRECONDITION_FAILED ErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument 417 / 417_EXPECTATION_FAILED ErrorDocument 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument 423 / 423_LOCKED ErrorDocument 424 / 424_FAILED_DEPENDENCY ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument 501 / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503 / 503_SERVICE_UNAVAILABLE ErrorDocument 504 / 504_GATEWAY_TIME_OUT ErrorDocument 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument 506 / 506_VARIANT_ALSO_VARIES ErrorDocument 507 / 507_INSUFFICIENT_STORAGE ErrorDocument 510 / 510_NOT_EXTENDED
Verkossa .htaccess-verkkopalvelut
- Htaccess Builder
- .htaccess-uudelleenohjausgeneraattori
- .htaccessEditor - Luo .htaccess-tiedosto
- Mod Rewrite Generator on GenerateIt.net
Muut hyödylliset resurssit
- .htaccess Httpd Wikissä
- Virallinen Apache htaccess -asiakirja
- Kysy Apache-blogista - Htaccess-arkistot
- Ultimate Guide to htaccess ja mod_rewrite
- Kaikki mitä haluatte tietää Mod_Rewrite -säännöistä, mutta pelkäsit Kysy
Lopulliset ajatukset
On niin paljon lukemattomia resursseja, jotka käsittelevät .htaccess-tiedostoja. Omat linkit ja artikkelit ovat hyvä paikka aloittaa. Mutta jatkakaa uusia ideoita ja älä pelkää koekoodinpätkien testaaminen. Niin kauan kuin sinulla on varmuuskopiotiedosto sitten voit testata mitä haluat ja se on hauska oppimiskokemus.
Jos sinulla on muita .htaccess-hallinnan ideoita tai ehdotuksia, jaa kanssamme alla olevassa keskustelualueella.