Oggi esamineremo alcuni usi pratici dei file htaccess che è possibile utilizzare nelle applicazioni Web.
I file Htaccess sono file di configurazione in chiaro utilizzati dal server Web HTTP Apache. Permettono agli utenti di impostare le opzioni a livello di directory senza richiedere l'accesso a httpd.conf file. Come tale è richiesto che il tuo server usi Apache e un host web che lo consenta htaccess file (gli host più popolari lo fanno).
Presumo una conoscenza di base di lavoro di htaccess, ma se hai bisogno di rinfrescare controlla questo articolo di Giuseppe Pecoraro
Hotlinking o collegamento in linea è quando un sito Web si collega direttamente a un oggetto su un altro sito. Ciò costa la larghezza di banda del sito di hosting a fornire l'immagine sulla pagina del secondo sito. Sui siti di foto popolari questo può essere un grosso problema, anche se a volte divertente.
Ci sono modi per risolvere questo crescente problema usando htaccess. Innanzitutto ecco l'immagine che stiamo cercando di proteggere.
RewriteEngine su RewriteCond% HTTP_REFERER! ^ $ #Domains che può collegarsi alle immagini #add quante volte vuoi RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Demo.collegeaintcheap.com [NC] # RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Noahhendrix.com [NC] #show nessuna immagine quando hotlinked RewriteRule \. (Jpg | png | gif) $ - [ NC, F, L]
Passeremo attraverso questa linea per linea.
Questo è abbastanza semplice, ma forse siamo interessati a dire all'utente che non vogliamo che facciano da hotlink alle nostre immagini, quindi reindirizziamo tutte le richieste hotlink a un'immagine invece di inviare un errore 403 proibito. Questo viene fatto sostituendo l'ultima riga con questo codice.
# mostra un'immagine alternativa RewriteRule \. (jpg | png | gif) $ http://demo.collegeaintcheap.com/envato/htaccess/hotlink/images/hotlink.jpeg [NC, R, L]
Puoi cambiare l'URL in qualsiasi percorso di immagine che desideri sul tuo dominio, ma ricorda che non deve finire in jpg, png o gif poiché riapplicherà la regola e invierà il server a un ciclo senza fine. Ho scelto di usare la vecchia estensione .jpeg per risolvere questo problema. Il R bandiera che ha sostituito F invia semplicemente un reindirizzamento.
Questo è un piccolo consiglio se hai uno spammer sul tuo sito web. Se riesci a trovare il loro IP nei tuoi registri, aggiungilo semplicemente a un file htaccess.
Rifiuta ordine, Consenti rifiuto da 24.121.202.23 # Rifiuta da 0.0.0.0
Usando la direttiva Order nel modulo mod_access possiamo specificare IP da negare e consentire. Semplicemente usando la sintassi Nega da IP ADDRESS possiamo vietare a questi utenti di accedere alla nostra directory.
Tutti i siti pronti per la produzione dovrebbero utilizzare pagine di errore personalizzate per un tocco professionale. Questo è facile usando la direttiva ErrorDocument nel core di Apache. Una pagina personalizzata è di gran lunga migliore delle pagine di errore di Apache predefinite.
ErrorDocument 404 http://demo.collegeaintcheap.com/envato/htaccess/errors/404.html ErrorDocument 403 http://demo.collegeaintcheap.com/envato/htaccess/errors/403.html ErrorDocument 500 http: // demo. collegeaintcheap.com/envato/htaccess/errors/500.html
ErrorDocument accetta due argomenti codice di errore e documento. Nel codice sopra ho creato documenti di errore per i 3 errori HTTP più comuni: 404 non trovati, 403 vietati e 500 errori del server. Quindi puoi fornire l'URL completo o il percorso relativo ai tuoi documenti di errore. Potresti anche reindirizzare a uno script PHP che registra gli errori in un database o li invia per e-mail (potrebbe però essere fastidioso). Questo è un ottimo modo per prendere il controllo degli errori nella tua applicazione web, assicurati di dare un'occhiata alla pagina di errore 404 di Smashing Magazine per l'ispirazione.
Se si sta eseguendo un aggiornamento del sito principale è molto probabile che si debba reindirizzare gli utenti a una pagina che li informa. Ciò impedisce agli utenti di vedere pagine rotte o potenziali buchi di sicurezza durante il caricamento dell'applicazione. Un avvertimento da considerare è che vogliamo consentire determinati indirizzi IP nel sito per i test prima che possano essere pubblicati, tutto questo può essere ottenuto in un file htaccess.
RewriteEngine su RewriteCond% REQUEST_URI! /Upgrade.html$ RewriteCond% REMOTE_HOST! ^ 24 \ .121 \ .202 \ .30 RewriteRule $ http://demo.collegeaintcheap.com/envato/htaccess/upgrade/upgrade. html [R = 302, L]
Stiamo usando di nuovo il motore di riscrittura per farlo, ma in una sorta di modo inverso. Per prima cosa dobbiamo impostare una condizione che escluda il documento che descrive l'aggiornamento altrimenti il nostro server avvia un ciclo infinito. Successivamente escludiamo un singolo indirizzo IP dal reindirizzamento a scopo di test. Finalmente usiamo la regola di riscrittura per inviare utenti ad una pagina di aggiornamento. Le bandiere che abbiamo visto prima, tranne questa volta impostiamo il reindirizzamento su un codice di stato 302, dicendo al browser che la pagina si è temporaneamente spostata e per gestire la memorizzazione nella cache di conseguenza. Smashing Magazine, ancora una volta, ha una grande vetrina di pagine efficaci di manutenzione.
Per numerosi motivi di sicurezza è una buona idea limitare l'elenco delle directory, il comportamento predefinito in Apache. Questo può essere fatto con una linea semplice nel nostro file htaccess che possiamo impedire ai visitatori di vedere i nostri elenchi di directory.
Opzioni -Index
Ora gli utenti che richiedono una directory che non ha un file di indice mostrerà loro una pagina 403 di errore proibito.
Questi sono molti dei miei usi preferiti di htaccess. Lascia i tuoi nei commenti! Sono disponibile per un aiuto nei commenti o su Twitter. Se c'è un grande interesse, farò più esercitazioni di Htaccess con soluzioni alle tue richieste nei commenti. Grazie per aver letto!