Computer finestre Internet

Come creare un file .htaccess: istruzioni dettagliate per principianti. htaccess cosa è, come si fa, esempio Compressione dei file in htaccess

andew

2015-02-19T11:30:28+00:00

2017-02-16T05:30:00+00:00

12697

File .htaccess sono, per il loro scopo, un file di configurazione a livello di directory per il server web Apache. Ciò significa che le direttive di questo file vengono eseguite localmente da Apache solo quando si accede alla directory contenente questo file. L'ambito di queste direttive si applica solo alla directory in cui si trova il file e alle sottodirectory, finché non vengono sovrascritte in altri file .htaccess dalle sottodirectory. Il file .htaccess viene riletto ogni volta che si accede al server web, quindi le modifiche apportate a questo file hanno effetto immediato.

Pertanto, Apache ci fornisce un comodo strumento di configurazione a livello di directory del sito. Ciò espande le nostre capacità poiché non tutte le impostazioni sono convenienti da eseguire a livello globale e a livello di host virtuale. Anche sull'hosting, il proprietario del sito, di regola, non ha la possibilità di configurare apache a livello globale e a livello di host virtuale, ma potrebbe avere la possibilità di configurare le impostazioni richieste a livello di directory del sito. Affinché Apache possa accettare ed eseguire direttive dai file .htaccess delle directory del sito, ciò deve essere consentito per il sito a livello globale o a livello di host virtuale Apache.

Questa risoluzione viene eseguita utilizzando il seguente blocco di codice:

Consenti l'override di tutte le #Altre direttive...

Qui nel tag viene indicato il percorso fisico sul server fino alla radice del tuo sito e all'interno del tag è indicata la direttiva EnableOverride. Questa direttiva può essere impostata su None per impedire al server di leggere il file .htaccess. Se è impostato su Tutti, il server accetterà tutte le direttive del file .htaccess. Valore predefinito: EnableOverride All.

Ora qualche parola sul nome del file .htaccess. Questo file può essere chiamato in modo diverso e anche questo viene impostato nella configurazione globale di Apache utilizzando la direttiva AccessFileName. Per impostazione predefinita, questa direttiva è impostata nella configurazione come AccessFileName .htaccess e di solito nessuno modifica questo valore, ma dovresti sapere che è possibile cambiarlo in qualcos'altro.

La sintassi dei file .htaccess è generalmente simile alla sintassi del file di configurazione principale di Apache. Tuttavia, l'amministratore può limitare l'accesso degli utenti a determinate direttive. Cioè, nonostante il comando, in linea di principio, possa essere eseguito da .htaccess, l'amministratore può negare l'accesso a una direttiva specifica. Tienilo in considerazione quando lavori. Voglio anche sottolineare questo punto, quando scrivi direttive che funzionano con le directory? quindi nei file di configurazione principali di Apache devono essere racchiusi in un tag indicando la directory a cui si applicano, tuttavia, quando si scrivono queste direttive nel file .htaccess, non è più necessario racchiuderle in un tag , se vuoi che vengano applicati alla directory corrente del file .htaccess, se vuoi applicarli solo alla sottodirectory allora, ancora una volta, devi racchiuderlo in un tag .

Per cosa possiamo utilizzare il file .htaccess?. Ci sono molte opzioni qui, ecco quelle più comuni:
1. Gestire i permessi di accesso alle directory del sito (proteggere con password una directory, negare l'accesso a file di un determinato formato o l'accesso a un sito in un determinato periodo di tempo, negare o consentire l'accesso da determinati indirizzi IP, gestire i robot dei motori di ricerca)
2.Per riscrivere l'URL corrente in uno nuovo a seconda delle condizioni ()
3.Indicare esplicitamente la codifica del sito.
4.Per consentire o bloccare la visualizzazione dei file del sito
5.Per proteggersi dall'hotlinking
6.Per eseguire reindirizzamenti
7.Per impostare le proprie pagine di errore
8.Per sovrascrivere il file indice
9…. e altro ancora.

Scriviamo qualche esempio file .htaccess generico.
In esso raccoglieremo i casi più comuni di utilizzo delle direttive e aggiungeremo commenti ad essi. E da questo template, eliminando ciò che non ti serve, potrai sempre preparare un .htaccess specifico per le tue attività. Qui il simbolo # - questo è un carattere di commento utilizzato nelle configurazioni di Apache.

# .htaccess inizio del template # Impostazione del fuso orario SetEnv TZ Europe/Moscow # Imposta forzatamente la codifica delle pagine del sito AddDefaultCharset UTF-8 # Imposta il file indice che verrà # restituito se non viene trovato quello richiesto DirectoryIndex index. php indice.html # Impedisce agli utenti di visualizzare i file nella directory Opzioni -Indexes # Consenti di seguire i collegamenti simbolici in questa directory Opzioni +FollowSymLinks # Consenti l'accesso solo per l'IP specificato Ordine Nega, Consenti Nega da tutti Consenti da x.x.x.x # Oppure nega accesso tramite IP Ordine consenti, nega nega da x.x.x.x nega da x.x.x.x consenti da tutti # Nega a tutti, poi solo # specifica questa riga Nega da tutti # Puoi negare l'accesso a una sottodirectory relativa al file corrente # in questo modo, oppure inserendo un file .htaccess separato lì Ordina Nega, Consenti Nega da tutti# Chiudi la directory con una password AuthType Basic AuthName "Inserisci una password" #percorso del file con password e utenti AuthUserFile /full/path/to/.htpasswd require valid-user # o chiudi la sottodirectory con una password AuthType Basic AuthName "Inserisci una password" #percorso del file con password e utenti () AuthUserFile /full/path/to/.htpasswd richiede utente-valido# Nega l'accesso al file.htpasswd # a tutti i visitatori tranne gli IP autorizzati Ordina Nega, Consenti Nega da tutti Consenti da x.x.x.x, x.x.x.xx# Blocca se è necessario disabilitare l'elaborazione PHP # può anche essere fatto impostato motore php_value spento motore php_value spento# # Blocca la modifica delle impostazioni PHP # alcune direttive dipendono dalla versione PHP #php_flag Register_globals off #php_value memory_limit 16M #per il caricamento dei file - se necessario #php_value max_execution_time 500 #php_value max_input_time 500 #php_value upload_max_filesize 30M #php_value post_max_size 30M #php_flag display_errors off # PHP in costruzione per caricare file di grandi dimensioni fino a 256M php_value memory_limit 256M php_value upload_max_filesize 256M php_value post_max_size 256M # # Riscrittura URL RewriteEngine On # imposta l'URL root su /RewriteBase/ #Tutte le richieste da HTTP a HTTPS RewriteCond %(HTTPS) =off RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI) #Solo per le directory specificate tutte le richieste da http a https reindirizzamento RewriteCond %(HTTPS) =off RewriteCond %(REQUEST_URI) /(admin|secret)/ RewriteRule (.*) https://%(HTTP_HOST)%(REQUEST_URI) # 301 Reindirizzamento come forzato #impostando una barra finale # RewriteCond %(REQUEST_URI) /+[^\.]+$ #RewriteRule ^(.+[^/])$ %(REQUEST_URI)/ # # 301 Reindirizzamento da www.site.ru a site.ru # come eliminare www RewriteCond % (HTTP_HOST) ^www\.site\.ru RewriteRule ^(.*)$ http://site.ru/$1 # #301 Reindirizzamento universale dal dominio www. SU senza www. RewriteCond %(HTTP_HOST) ^www\.(.*) RewriteRule ^(.*)$ http://%1/$1 #301 Reindirizzamento universale da un dominio senza www. su www. RewriteCond %(HTTP_HOST) ^(.*)$ RewriteCond %(HTTP_HOST) !^www\. RewriteRule ^(.*)$ http://www.%1/$1 # 301 Reindirizzamento dai domini specificati al dominio principale RewriteCond %(HTTP_HOST) ^www.domen.net$ RewriteCond %(HTTP_HOST) ^domain.net$ RewriteCond %( HTTP_HOST) ^www.domain.net$ RewriteRule ^(.*)$ http://domain.net/$1 # #Reindirizzamento con conversione dei parametri GET RewriteCond %(QUERY_STRING) do=page RewriteCond %(QUERY_STRING) id= (\d+ ) RewriteRule .* /page/%1/? # Reindirizzamento interno a index.php per CMS # Se viene richiesto un file o una directory inesistente # Quindi reindirizzare la richiesta a index.php RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule . /index.php [L] # # o un'altra opzione per il reindirizzamento interno a index.php RewriteCond $1 !^(index\.php|images|robots\.txt|public) RewriteCond %(REQUEST_URI) !\.(css_js_jpg_gif_png)$ RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d RewriteRule ^(.*)$ indice.php?/$1 # o così: RewriteRule ^(.*)$ indice.php [L] # #Un altro opzione , per chi non ha WordPress e vuole #eliminare richieste inutili (bot, ecc.) ai temi, al pannello di amministrazione e alle directory del tipo #Where, cioè non un file o una directory, e non inizia con /wp-, #poi ​​facciamo un reindirizzamento interno a index.php RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_FILENAME) !-d #se non hai WordPress, aggiungi questo e anche il blocco dopodiché RewriteCond %(REQUEST_URI) !^/wp- RewriteRule . /index.php [L] #se non hai WordPress, allora tutti quelli che entrano in /wp-... #dai 410 Gone status - raccomandazione di dimenticare questo URL #RewriteRule "oldproduct" "-" #general example RewriteCond %(REQUEST_URI) ^/wp-RewriteRule. - # Protetto dall'hotlink RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http://site\.ru/ RewriteCond %(HTTP_REFERER) !^https://site\.ru/ RewriteCond %(HTTP_REFERER) !^http://www\.site\.ru/ RewriteCond %(HTTP_REFERER) !^https://www\.site\.ru/ RewriteRule \.(jpeg|png|bmp|gif|jpg|js|css )$ - [F] # # Un'altra opzione per le risorse anti-hotlinking (immagini) RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http://(.+\.)?server\.ru/ RewriteCond %(HTTP_REFERER ) !^https://(.+\.)?server\.ru/ RewriteCond %(REQUEST_URI) !null\.gif$ # Reindirizza lo stub dummy.gif all'immagine RewriteRule \.(jpg|jpeg |gif|bmp| png)$ http://server.ru/dummy.gif [L] # Un'altra opzione per le risorse anti-hotlinking (immagini) RewriteCond %(HTTP_REFERER) ! ^$ #Sostituisci?miosito\.com/ con l'indirizzo del tuo blog RewriteCond %(HTTP_REFERER) !^http://(.+\.)?miosito\.com/ RewriteCond %(HTTP_REFERER) !^$ #Sostituisci /images/ nohotlink.jpg alla tua immagine con hotlink vietato RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L] # Un'altra opzione per le risorse anti-hotlink (immagini) RewriteCond %(HTTP_REFERER ) !^ http://(.+\.)?mysite\.com/ RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !google. RiscriviCond %(HTTP_REFERER) !yandex. RewriteCond %(HTTP_REFERER) !search?q=cache RewriteCond %(HTTP_REFERER) !msn. RiscriviCond %(HTTP_REFERER) !yahoo. RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpe [L] ## Emette errori 404 se mod_rewrite è disabilitato DocumentoErrore 404 /index.php# Impostiamo le nostre pagine per gli errori ErrorDocument 404 /err_404.html ErrorDocument 403 /err_403.html # # Blocco di codice per il reindirizzamento alla versione mobile del sito # Come opzione lo fornirò qui, altro per esempio RewriteEngine on # Controlla il browser UserAgent string RewriteCond %(HTTP_USER_AGENT) acs RewriteCond %(HTTP_USER_AGENT) alav RewriteCond %(HTTP_USER_AGENT) alca RewriteCond %(HTTP_USER_AGENT) amoi RewriteCond %(HTTP_USER_AGENT) audi RewriteCond %(HTTP_USER_AGENT) aste RewriteCond % (HTTP_ USER_AGENT) avan RewriteCond %(HTTP_USER_AGENT) benq RewriteCond %(HTTP_USER_AGENT) bird RewriteCond %(HTTP_USER_AGENT) blac RewriteCond %(HTTP_USER_AGENT) blaz RewriteCond %(HTTP_USER_AGENT) brew RewriteCond %(HTTP_USER_AGENT) cell RewriteCond %(HTTP_USER_AGENT) cldc RewriteCond %(HTTP_ US ER_AGENT) cmd- RiscriviCond % (HTTP_USER_AGENT) dang RewriteCond %(HTTP_USER_AGENT) doco RewriteCond %(HTTP_USER_AGENT) eric RewriteCond %(HTTP_USER_AGENT) hipt RewriteCond %(HTTP_USER_AGENT) inno RewriteCond %(HTTP_USER_AGENT) ipaq RewriteCond %(HTTP_USER_AGENT) java RewriteCond %(HTTP _USER_AGENT) maschere RewriteCond % (HTTP_USER_AGENT ) kddi RewriteCond %(HTTP_USER_AGENT) keji RewriteCond %(HTTP_USER_AGENT) leno RewriteCond %(HTTP_USER_AGENT) lg-c RewriteCond %(HTTP_USER_AGENT) lg-d RewriteCond %(HTTP_USER_AGENT) lg-g RewriteCond %(HTTP_USER_AGENT) lge- Re writeCond %( HTTP_ USER_AGENT) maui RewriteCond %(HTTP_USER_AGENT) maxo RewriteCond %(HTTP_USER_AGENT) midp RewriteCond %(HTTP_USER_AGENT) mits RewriteCond %(HTTP_USER_AGENT) mmef RewriteCond %(HTTP_USER_AGENT) mobi RewriteCond %(HTTP_USER_AGENT) mot- RewriteCond %(HTTP_USER _AGENT) moto RiscriviCond % (HTTP_USER_AGENT) mwbp RewriteCond %(HTTP_USER_AGENT) nec- RewriteCond %(HTTP_USER_AGENT) newt RewriteCond %(HTTP_USER_AGENT) noki RewriteCond %(HTTP_USER_AGENT) opwv RewriteCond %(HTTP_USER_AGENT) palm RewriteCond %(HTTP_USER_AGENT) pana RewriteCond %(HT TP_USER_AGENT) pant RewriteCond %( HTTP_USER_AGENT) pdxg RewriteCond %(HTTP_USER_AGENT) phil RewriteCond %(HTTP_USER_AGENT) play RewriteCond %(HTTP_USER_AGENT) pluc RewriteCond %(HTTP_USER_AGENT) port RewriteCond %(HTTP_USER_AGENT) prox RewriteCond %(HTTP_USER_AGENT) qtek RewriteCond %(HTTP_USER _AGENT) qwap RewriteCond %(HT TP_USER_AGENT ) sage RewriteCond %( https TP_USER_AGENT) shar RewriteCond % (HTTP_USER_AGENT) sie- RewriteCond %(HTTP_USER_AGENT) siem RewriteCond %(HTTP_USER_AGENT) smal RewriteCond %(HTTP_USER_AGENT) smar RewriteCond %(HTTP_USER_AGENT) sony RewriteCond %(HTTP_USER_AGE NT) sph- RiscriviCond %( HTTP_USER_AGENT) symb RewriteCond %(HTTP_USER_AGENT) t-mo RewriteCond %(HTTP_USER_AGENT) teli RewriteCond %(HTTP_USER_AGENT) tim- RewriteCond %(HTTP_USER_AGENT) tosh RewriteCond %(HTTP_USER_AGENT) tsm- RewriteCond %(HTTP_USER_AGENT) upg1 RewriteCond %( HTTP_USER_AGENT) upsi RewriteCond %(HTTP_USER_AGENT) vk -v RewriteCond %(HTTP_USER_AGENT ) voda RewriteCond %(HTTP_USER_AGENT) w3cs RewriteCond %(HTTP_USER_AGENT) wap- RewriteCond %(HTTP_USER_AGENT) wapa RewriteCond %(HTTP_USER_AGENT) wapi RewriteCond %(HTTP_USER_AGENT) wapp RewriteCond %(HTTP_USER_AGENT) wapr RewriteCond %(HTTP_USER_AGENT) webc RewriteCond %(HTTP_USER_AGENT) winw RewriteCond %(HTTP_USER_AGENT) winw RewriteCond %(HTTP_USER_AGENT) xda RewriteCond %(HTTP_USER_AGENT) xda- RewriteCond %(HTTP_USER_AGENT) up.browser RewriteCond %(HTTP_USER_AGENT) up .link RiscriviCond %(HTTP_USER_AGENT) windows.ce RewriteCond %(HTTP_USER_AG ENT) iemobile RewriteCond %(HTTP_USER_AGENT) mini RewriteCond %(HTTP_USER_AGENT) mmp RewriteCond %(HTTP_USER_AGENT) symbian RewriteCond %(HTTP_USER_AGENT) midp RewriteCond %(HTTP_USER_AGENT) wap RewriteCond %( HTTP_USER_AGENT) telefono RewriteCond %(HTTP_USER_AGENT) ipad RewriteCond % (HTTP_USER_AGENT) iphone RewriteCond % (HTTP_USER_AGENT) iPad RewriteCond %(HTTP_USER_AGENT) iPhone RewriteCond %(HTTP_USER_AGENT) ipod RewriteCond %(HTTP_USER_AGENT) iPod RewriteCond %(HTTP_USER_AGENT) pocket RewriteCond %(HTTP_USE R_AGENT) Mobile RewriteCond % (HTTP_USER_AGENT) Android RewriteCond %(HTTP_USER_AGENT) Android RewriteCond %(HTTP_USER_AGENT ) pda RewriteCond %(HTTP_USER_AGENT) PPC RewriteCond %(HTTP_USER_AGENT) Series60 RewriteCond %(HTTP_USER_AGENT) Opera. Mini RewriteCond %(HTTP_USER_AGENT) Moby RewriteCond %(HTTP_USER_AGENT) Mobi # Controlla le intestazioni del servizio inviate dal browser RewriteCond %(HTTP_ACCEPT) "text/vnd.wap.wml" RewriteCond %(HTTP_ACCEPT) "application/vnd.wap.xhtml+xml " # Controlla le eccezioni RewriteCond %(HTTP_USER_AGENT) !windows.nt RewriteCond %(HTTP_USER_AGENT) !bsd RewriteCond %(HTTP_USER_AGENT) !x11 RewriteCond %(HTTP_USER_AGENT) !unix RewriteCond %(HTTP_USER_AGENT) !macos RewriteCond %(HTTP_USER_AGENT) !macintosh RiscriviCond% ( HTTP_USER_AGENT) !playstation RewriteCond %(HTTP_USER_AGENT) !google RewriteCond %(HTTP_USER_AGENT) !yandex RewriteCond %(HTTP_USER_AGENT) !bot RewriteCond %(HTTP_USER_AGENT) !libwww RewriteCond %(HTTP_USER_AGENT) !msn RewriteCond %(HTTP_USER_AGENT) ! america RiscriviCond %( HTTP_USER_AGENT ) !avant RewriteCond %(HTTP_USER_AGENT) !download RewriteCond %(HTTP_USER_AGENT) !fdm RewriteCond %(HTTP_USER_AGENT) !maui RewriteCond %(HTTP_USER_AGENT) !webmoney RewriteCond %(HTTP_USER_AGENT) !windows-media-player # Quando le condizioni sono soddisfatte, reindirizzare al sito della versione mobile RewriteRule ^(.*)$ http://mobile.version.of.site.ru#Universal 302 reindirizza alla versione mobile del sito RewriteEngine su #Universal reindirizzamento alla versione mobile del sito RewriteCond %(HTTP_HOST) ^(.*)$ RewriteCond %(HTTP_USER_AGENT) (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource| opwv|chtml |pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|telefono|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg |eric| vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt |sendo| sgh|gradi|jb|dddi|moto|iphone|android) RewriteRule ^$ http://m.%1# .htaccess fine del modello

Ne decifrerò alcuni bandiere dalle direttive:

  • RiscriviCond... - NC significa confronto non sensibile al registro da eseguire
  • RiscriviCond... - NC vedi sopra, OR significa combinare RewriteCond tramite OR, per impostazione predefinita se non viene specificato nulla, RewriteCond viene combinato tramite l'operatore AND.
  • Riscrivi regola... [L]- L significa terminare (interrompere l'elaborazione) qualsiasi ulteriore trasformazione su questa regola RewriteRule URL, cioè. le successive RewriteRules non vengono eseguite.
  • Riscrivi regola... - L vedi sopra, R=302 significa reindirizzamento con codice 302 all'URL convertito
  • Riscrivi regola... - L e R vedi sopra, QSA - quando si trasforma un URL, eseguire l'unione delle parti specificate e non la sostituzione.
  • Riscrivi regola... [F]- F, significa rifiutarsi di emettere un risultato per questo URL codice 403 Vietato.
  • RewriteRule. - G|Andato - [G] flag significa rivelare il codice 410 Stato andato- raccomandazione di dimenticare questo URL

AuthUserFile - imposta il percorso del file con le password per l'autenticazione dell'utente http. Il percorso può essere assoluto dalla radice del file system del server Linux o relativo da ServerRoot apache. Su Ubuntu, ServerRoot è "/etc/apache2" per impostazione predefinita. Quando si specifica un percorso relativo da ServerRoot apache, la barra iniziale nel percorso non viene specificata, altrimenti il ​​percorso verrà percepito come assoluto dalla root Linux. Inoltre, se un percorso contiene caratteri e spazi non validi, è necessario racchiuderlo tra virgolette, questa è una regola generale.

Ordina, Nega, Consenti

Ora ancora una volta, ma più nel dettaglio, vorrei tornare alle direttive sul controllo degli accessi: Ordine, Negare, Permettere e descriverne la sintassi e la logica in modo più dettagliato.

Direttive Permettere , Negare , Ordine modulo mod_access_compat indesiderabile per l'uso e sono considerati obsoleti, sebbene siano ancora supportati nelle versioni Apache 2.3 E 2.4 . Verranno rimossi nelle versioni future. Invece, a partire dalla versione Apache2.3, questa funzionalità è implementata dalla direttiva Richiedere, che consente di configurare l'accesso in modo più flessibile rispetto alle direttive legacy. Per i dettagli si rimanda all'articolo che descrive nel dettaglio le direttive Richiedere, Permettere, Negare, Ordine con esempi del loro utilizzo.

Sintassi della direttiva Order: Order O

Predefinito La direttiva Order ha l'ordine: Negare consentire. notare che Negare consentire scritto senza spazi.

A seconda dell'ordine in cui sono specificate le direttive Negare consentire O Consentono di negare La logica del lavoro cambia.

Se Negare consentire quindi l'accesso da tutti gli IP tranne quelli specificati è vietato, se Consentono di negare L'accesso è consentito da tutti gli IP tranne quelli specificati. Successivamente ci sono le sezioni descrittive per l'accesso e il rifiuto. Parola chiave Tutto significa da tutti gli IP.

Ad esempio, per negare (bloccare) l'accesso dagli IP x.x.x.x e x.x.x.xx e consentire l'accesso a tutti gli altri, è necessario aggiungere il seguente codice a .htaccess:

#Consenti TUTTI tranne gli IP specificati
Ordine Consenti, Nega
Consenti da tutti
Nega da x.x.x.x x.x.x.xx

Tieni presente che gli IP vengono scritti separati da spazi. È inoltre possibile specificare l'IP come IP/maschera.

Per la situazione inversa, cosa accadrebbe vietare per accedere da tutti gli IP tranne x.x.x.x e x.x.x.xx dobbiamo aggiungere il seguente codice a .htaccess:

# Negare TUTTI tranne quelli specificati IP
Ordine Nega, Consenti
Negato da tutti
Consenti dalle x.x.x.x x.x.x.xx

È possibile specificare il divieto o l'autorizzazione su un singolo file o su gruppi di file. Ad esempio, per negare l'accesso a tutti tranne che all'IP x.x.x.x al file passwd.html, che si trova nella directory corrente.

# Nega il file passwd.html a TUTTI tranne che all'IP specificato

Ordine Nega, Consenti
Negato da tutti
Consenti dalle x.x.x.x

Allo stesso modo, puoi negare o consentire l'accesso a un gruppo specifico di file descrivendoli utilizzando un'espressione regolare. Ad esempio, ai file con estensione ".key":

#Nega i file *.key a TUTTI tranne che all'IP specificato

Ordine Nega, Consenti
Negato da tutti
Consenti dalle x.x.x.x

Il modello si è rivelato ampio, ma in pratica dovresti sforzarti di utilizzare solo le direttive veramente essenziali. È necessario prestare particolare attenzione ai reindirizzamenti esterni, poiché comportano un aumento complessivo del tempo di elaborazione delle richieste. Fateli quindi solo se sono veramente necessari. Vorrei anche metterti in guardia contro le direttive copia-incolla direttamente dal modello che ho fornito nelle tue configurazioni reali. Usa il codice fornito qui solo come esempio per avere un'idea di cosa è possibile e come sarebbe. Inserisci nei tuoi file solo quelle direttive di cui capisci la sintassi, puoi decifrarla e che hai controllato utilizzando il manuale ufficiale apache. Errori nell'esecuzione delle direttive da un file .htaccess guarda nei log apache.

Htaccess è un file relativo alla configurazione del server Apache. In esso puoi impostare diverse impostazioni per una configurazione più conveniente di errori e altre cose per il sito. Di solito, il file .htaccess si trova nella directory root e agisce sull'intero sito, su tutte le sottodirectory, ma a meno che non contenga il proprio .htacces in un'altra directory, allora agirà sulla propria directory e sulle sue sottodirectory, a meno che ovviamente quest'ultimo contiene il tuo file .htaccess.

In genere, il file .htaccess viene utilizzato per limitare l'accesso a determinati file o directory.

Il tuo host supporta .htaccess?

Questa è probabilmente la domanda più difficile a cui non è possibile rispondere subito! A volte gli hoster supportano .htaccess, ma vietano ai propri utenti di utilizzare questo servizio. Se noti su FTP che è presente un file .htaccess, non affrettarti a sostituirlo ed è meglio contattare l'assistenza. Per convenzione, se sul server è installato Unix o Linux, il server supporta .htaccess. Conosco tre siti che supportano .htaccess, questi sono:

Come creare un file .htaccess?

Molto semplice. Andiamo su Blocco note, scriviamo il testo che apparirà sotto e poi clicchiamo su “Salva con nome”, selezioniamo il tipo di file “Tutti i file” *.* (“Tutti i file” *.*) e nel campo “Nome file” scriviamo. htaccess. Se non puoi farlo, non preoccuparti e salvalo semplicemente come file .htaccess.txt e, quando lo carichi su FTP utilizzando il tuo client FTP, cambia il nome in .htaccess .

ATTENZIONE: Prima di utilizzare .htaccess, ti avviso: anche se utilizzare .htaccess sul tuo server è estremamente sconsigliabile, perché... Potrebbero sorgere alcuni problemi (se qualcosa non va, semplicemente non funzionerà), dovresti diffidare delle estensioni di Microsoft FrontPage. Le estensioni di Microsoft FrontPage utilizzano .htaccess, quindi non ti consiglio di modificarlo completamente (il file .htaccess) o di aggiungere tu stesso informazioni e sostituire il tuo .htaccess con .htaccess del server. Se sei proprio impaziente, allora ti consiglio di copiare prima il file .htaccess dal server e solo dopo modificarlo lì, altrimenti chissà cosa farai lì con i tuoi handle “storti” :-).

Pagine di errore regolari

Prima di tutto ti dirò che puoi modificare la pagina di errore. Quelli. le pagine che vengono visualizzate in caso di errore (ad esempio, 404 File non trovato) possono essere personalizzate per adattarsi al design. Penso che gli occhi di ogni web designer si siano illuminati all’idea che puoi scrivere 404 a grandi lettere rosse per il tuo design, sul tuo sfondo con la presenza del tuo menu e logo, in modo che tutti possano vederlo. Bene, cominciamo. Il sistema è il seguente: ErrorDocument numero errore /file.html Diciamo che vogliamo cambiare l'errore 404, quindi scriviamo quanto segue: ErrorDocument 404 /notfound.html dove notfound.html è un file che si trova nella directory root ed era cambiato da noi! Se i file con errori si trovano nella cartella /errorpages, scrivi nel file .htaccess ErrorDocument 404 /errorpages/404.html.

Ecco un elenco degli errori più comuni:

401 - Autorizzazione richiesta
400 - Richiesta errata
403 - Proibito
500 - Errore interno del server
404 - Pagina errata o file non trovato

Creiamo file con tutti questi errori e li scriviamo nel file .htaccess.

Nella parte successiva parlerò di altre funzioni del file .htaccess per migliorare il tuo sito.

Accade spesso che il proprietario di un progetto Internet abbia la necessità di limitare completamente o parzialmente l'accesso al suo sito web: alle sue singole parti, o di vietare l'accesso al sito a utenti specifici, o di renderlo accessibile solo a una certa cerchia di persone. Il file .htaccess è ottimo per tutte queste funzioni. La sua semplice configurazione consente anche agli utenti inesperti di capire come funziona questo file. Pertanto, se non conosci il funzionamento del file .htaccess o non lo conosci affatto, ti suggeriamo di comprendere le impostazioni di base.

A cosa serve il file .htaccess?

Htaccess ti consente di gestire un gran numero di impostazioni per il tuo sito e il suo accesso. Puoi creare tu stesso il file .htaccess, di solito questo viene fatto nella directory principale.

Le impostazioni dettate dal file dipendono dalla directory in cui si trova .htaccess, nonché da tutte le directory in esso incluse.

Non creare un altro file .htaccess se il tuo sito ne ha già uno. Per applicare le sue regole ad altre directory, aggiungi ulteriori regole al file esistente.

Come creare un file .htaccess

Per fare ciò, utilizzare il file manager dopo aver raggiunto la cartella desiderata. Dopo aver creato un nuovo file chiamato .htaccess, puoi iniziare a riempirlo con le impostazioni.

Accesso limitato

Per proteggere il vostro progetto o le sue singole parti da ospiti indesiderati, una soluzione affidabile sarebbe quella di limitare l'accesso tramite l'indirizzo IP dei visitatori. Se il tuo sito riceve richieste più frequenti alla sua parte amministrativa, potrebbe trattarsi di un tentativo di hacking. Per limitarti da tali minacce, la soluzione migliore è bloccare l'accesso a questa sezione del sito a tutti gli indirizzi IP tranne il tuo e quelli di cui ti fidi. Successivamente daremo uno sguardo più approfondito alla configurazione di .htaccess.

Per bloccare l'accesso all'intero sito è necessario scrivere nelle regole del file .htaccess quanto segue:

Ordina nega, consenti Nega da tutti Consenti da *.*.*.*

Queste impostazioni creano un ordine specifico di azioni. Inizialmente l'accesso è negato a tutti gli utenti. Quindi l'accesso è consentito solo dall'ip selezionato, che è indicato al posto degli asterischi nell'ultima riga. È possibile consentire l'accesso a un gran numero di IP o sottoreti. L'unica regola è scrivere tutti gli indirizzi su una nuova riga.

Per indirizzi appartenenti alla stessa sottorete è necessario specificare l'intervallo 0/* al posto dell'ultimo asterisco.
Per esempio:

Consenti da *.*.*.0/11

Se non conosci il tuo indirizzo IP, utilizza uno dei tanti servizi su Internet, ad esempio: https://2ip.ru/

Per limitare l'accesso non all'intero sito, ma a una delle sue parti, è necessario creare un file nella cartella che necessita di accesso limitato.

Negare l'accesso a indirizzi specifici

Se capita che ci siano chiamate di massa regolari al tuo sito da un indirizzo IP, ha senso limitarne completamente l'accesso. In una situazione del genere, le regole nel file .htaccess dovrebbero essere scritte in questo modo:

Ordine consenti, nega Consenti da tutti Nega da *.*.*.*

Qui, a differenza dell'esempio precedente, l'accesso viene prima concesso e poi negato. La riga Consenti da tutti dà accesso a tutti i visitatori del sito. La terza riga blocca l'accesso al sito per l'ip selezionato. Proprio come l'ultima volta, aggiungi nuovi IP da una nuova riga. Contatta il supporto tecnico del tuo provider per scoprire l'indirizzo IP da cui vengono effettuate le richieste al tuo sito.

Impostazione di una password per accedere alla cartella.

Molto più spesso è necessario bloccare l'accesso non all'intero sito, ma alle sue singole directory. In questi casi, la soluzione migliore è una password. Per installarlo è necessario aprire il pannello di controllo, selezionare la cartella desiderata e fare clic sul pulsante "Protezione con password".

Lo svantaggio principale di questo metodo è che la password viene impostata solo per un visitatore. Affinché più persone possano utilizzarlo contemporaneamente, abbiamo ancora bisogno dell'aiuto di .htaccess. Nel file .htaccess, inserisci le nuove impostazioni.

AuthName "tuo_testo" AuthType Basic Richiedi utente valido AuthUserFile "full_path_to_file_.htpasswd"

Nel campo "tuo_testo" devi specificare il testo che verrà visualizzato quando proverai ad accedere a questa cartella. È importante che questo testo sia scritto in latino e non contenga caratteri speciali.

La riga Richiedi utente valido consente l'accesso per qualsiasi nome utente. Puoi specificare il tuo elenco di nomi elencandoli separati da virgole anziché da utente valido.

Il login e la password per accedere alla cartella devono essere crittografati e contenuti nel file .htpasswd della stessa directory. Nella quarta riga è necessario specificare il percorso di questo file. Puoi anche utilizzare un file manager per crearlo.

Per crittografare login e password, utilizza l'utilità da console.htpasswd se sei un utente avanzato. Altrimenti, puoi utilizzare servizi di terze parti, di cui esiste un numero enorme su Internet. Nella seconda opzione, specifichi semplicemente il nome utente e la password desiderati e riceverai il testo crittografato che dovrai copiare e incollare nel tuo file .htpasswd.
Questa è solo una piccola parte di tutte le impostazioni con cui .htaccess può funzionare. Come ormai sai, .htaccess ti consente di lavorare con l'accesso al tuo sito e alle sue singole parti. Dopo averlo studiato più nel dettaglio, potrai gestire facilmente la sicurezza del tuo sito, oltre a molte altre impostazioni utili.

Il file .htaccess è necessario per il corretto e corretto funzionamento del tuo blog o sito web. In questo articolo conosceremo il file .htaccess e lo creeremo.

Contenuto:
  • § 1. File.htaccess
  • 1.1. Come creare un file .htaccess
  • 1.2. Setup.htaccess.
  • §2.
  • 2.2. Reindirizzamento di vecchi collegamenti a nuove pagine utilizzando un reindirizzamento 301
  • § 3. Restrizione dell'accesso
  • 3.2. Protezione della password

§ 1. File.htaccess

Il file .htaccess viene utilizzato per impostare alcuni parametri per i server Apache. htaccess è stato inventato appositamente per fornire la possibilità di modificare la configurazione del server per ciascun utente, influenzando solo il proprio sito e non l'intero server.

Caratteristiche dell'utilizzo di htaccess:

1. Ti consente di sovrascrivere un gran numero di direttive scritte nel file httpd.confg principale

2. Se inserisci il file htaccess nella directory root, verrà distribuito all'intero sito (le uniche eccezioni saranno quelle directory in cui si trova il proprio file di configurazione e le directory situate più in basso nella struttura ad albero)

3. Puoi posizionare il file htaccess in qualsiasi directory e le sue direttive verranno applicate a tutte le sottodirectory

4. Htaccess non è disponibile all'utente per la visualizzazione dal browser, poiché appartiene alla categoria “sistema”.

Con htaccess, l'utente ha la flessibilità di configurare il proprio server e può applicare i seguenti parametri:

  • . Direttive di reindirizzamento semplici (reindirizzamento);
  • . Direttive di reindirizzamento complesse (mod_rewrite);
  • . Pagine indice;
  • . Elaborazione degli errori;
  • . Definizione di codifica;
  • . Gestire l'accesso a directory e file;
  • . Password della directory;
  • . Opzioni PHP.


1.2. Come creare un file .htaccess

Procedura per creare .htaccess:

1. Apri un editor di testo ( Blocco note++ o anche ordinario Taccuino).

2. Sul menu " File" scegliere " Salva come".

3. Nell'elenco a discesa " Tipo di file" scegliere " Tutti i files".

4. Inserisci come nome " .htaccess" (senza virgolette).

§2. Esempi di utilizzo del file .htaccess

Il file .htaccess è utilizzato al meglio per gestire errori sul sito (come 404 o 301), per riscrivere gli URL o per impostare i diritti di utilizzo della directory. Ciò è ottimo quando è necessario specificare una nuova posizione per vecchi contenuti, quando si crea una pagina di errore per contenuti che non esistono più, per richiedere una password per accedere ad alcuni file o cartelle sul server o per rendere gli URL più comprensibili e semplici . Diamo un'occhiata ad alcuni usi del file .htaccess:

2.1. Errore 404 o come mantenere un visitatore

Una volta su una pagina con la misteriosa scritta “Errore 404”, dove la pagina richiesta non è stata trovata e si è suggerito di tornare da dove venivano. Alcuni di voi ritornano e altri semplicemente chiudono la pagina e lasciano il sito.


L'errore 404 si verifica nel browser dell'utente quando digita un indirizzo errato o completamente inesistente o accede a un sito utilizzando un collegamento interrotto. Questo è il momento in cui l'utente viene reindirizzato automaticamente alla pagina di errore del server.

Puoi creare la tua pagina con un messaggio di errore 404. Ad esempio:

"Mille scuse! C'è stato un malinteso! OhPer assistenza consulta la mappa del sito, ti aiuterà a trovare tutto ciò di cui hai bisogno. Buon viaggio!"

Lo scopo di creare la propria pagina con un messaggio di errore 404 è mantenere il visitatore sul sito e impedirgli di andarsene.

Crea le tue pagine di errore

1 . Apri Blocco note (editor di testo).

2. Incolla lì il seguente codice:

ErrorDocument 404 http://your_site/myerror.html

Dove il tuo sito web è il nome di dominio del tuo sito e myerror è il nome della pagina di errore 404.

3. Salviamo questo file con il nome .htaccess. Il file .htaccess controlla la pagina 404.

4. Caricalo nella directory principale del sito. La voce che abbiamo creato indica al server la nuova posizione e il nome della pagina di errore.

5. Creiamo la pagina di errore stessa, inseriamo il testo richiesto, puoi anche inserire un'immagine adatta e caricare la pagina nella cartella principale.

6. Digita nel tuo browser la riga http://tuo_sito/ /abracadabra.html e vedere il risultato del lavoro svolto.

Avere la propria pagina di errore 404 non è la risposta a tutti i problemi.

Fidelizzando i tuoi potenziali clienti con la tua pagina di errore 404, aumenti la probabilità che acquistino da te e non dal tuo concorrente!

1. Assicurati di averlo scritto correttamente e di non dimenticare il punto all'inizio del nome del file: .htaccess.

2. Rendi la tua pagina di errore 404 visivamente identica a qualsiasi altra pagina del sito, ad es. Il visitatore deve avere l'impressione di trovarsi su una pagina normale del sito e non su una pagina di errore.

3. La tua pagina di errore 404 non rovinerà la reputazione tua e della tua risorsa!

2.2. Reindirizzamento di vecchi collegamenti a nuove pagine utilizzando un reindirizzamento 301

Uno dei problemi più seri che i proprietari devono affrontare quando spostano un sito web è una perdita significativa di posizioni delle pagine nei motori di ricerca. Questo perché i vecchi contenuti vengono erroneamente trasferiti nella nuova posizione senza avvisare il motore di ricerca dell'avvenuto cambio di posizione. Ciò porterà all'esclusione del collegamento dai risultati del motore di ricerca e di conseguenza influenzerà il posizionamento del sito web in questo sistema.

Per evitare ciò, è necessario utilizzare una pagina di reindirizzamento 301 come parte del file .htaccess. Questo errore è noto come reindirizzamento permanente e indirizzerà il motore di ricerca alla nuova posizione del file o del contenuto specifico. Il reindirizzamento è simile al seguente:

Reindirizzamento 301 http://domen.ru/old-page/ http://domen.ru/archive/new-page/

Redirect 301, indica il tipo di errore e significa che un reindirizzamento dovrebbe avvenire nel momento in cui il robot del motore di ricerca tenta di scoprire il contenuto dal vecchio collegamento. Il primo URL mostra il vecchio collegamento al contenuto e il secondo URL punta alla posizione del contenuto aggiornato. Sebbene in questo esempio venga utilizzato lo stesso dominio per entrambi gli URL, un reindirizzamento 301 consente di reindirizzare utenti e motori di ricerca a nuovi nomi di dominio.

2.3. Incollare mirror utilizzando reindirizzamenti 301

Un reindirizzamento 301 viene utilizzato anche per reindirizzare le pagine con il prefisso www a pagine senza www o viceversa. Per i motori di ricerca, il sito your_site.ru è costituito da due siti con lo stesso contenuto, aventi gli indirizzi: http://www.your_site.ru/ e http://your_site.ru. Tali siti sono chiamati mirror, quindi alcune tette e pr passano da un sito all'altro. Per evitare che ciò accada e affinché i motori di ricerca considerino questi due siti come uno solo, "incollano insieme gli specchi", ovvero reindirizzano gli utenti e i robot di ricerca da un sito con il prefisso www a un sito senza www o viceversa. Per fare questo, nel file .htacces devi scrivere:

RewriteEngine acceso
RiscriviCond %(HTTP_HOST) ^www.tuo_sito.ru
RewriteRule (.*) http://your_site.ru/$1

abbiamo impostato il reindirizzamento da tutte le pagine del sito con il prefisso www

§ 3. Restrizione dell'accesso

Il file di configurazione aggiuntivo.htaccess viene spesso utilizzato anche per limitare l'accesso a un sito, a sezioni di un sito o a file specifici situati sul server.

Per negare l'accesso all'intero sito è necessario scrivere nel file .htacces:

negato da tutti

Nega l'accesso solo da un indirizzo IP specifico:

negato da tutti
ordine consentire negare
negato da tutti
nega da user_ip_address

"user_ip_address" deve essere sostituito con un indirizzo IP specifico.

Per consentire l'accesso solo da uno specifico indirizzo IP è possibile scrivere:

ordine consentire negare
negato da tutti
consenti da indirizzo_ip_utente

3.1. Proteggere un file da un hotlink

Hai scritto un articolo e inserito delle immagini, non è un segreto che gli articoli vengano costantemente rubati, di solito da adolescenti, per non perdere tempo. Rubando articoli, rubano anche le tue foto e non solo le salvano sul loro computer e poi le aggiungono al tuo sito web, i ladri usano il tuo server copiando il codice URL dell'immagine e incollandolo sul loro sito web, per questo motivo c'è un grande carico sul tuo server.

Puoi proteggere i file da un hotlink utilizzando il file .htaccess aggiungendovi due righe:

RiscriviCond %(HTTP_REFERER) !^$
RiscriviCond %(HTTP_REFERER) !^http(s)?://(www.)?tuo_sito.ru.*$
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

Tra parentesi separate dal simbolo "|" vengono indicate le estensioni dei file, il cui accesso sarà negato a tutti tranne al server e agli utenti del sito your_site.ru

Per consentire l'accesso ai file con questa estensione per gli utenti dei motori di ricerca, è necessario rimuovere il divieto su di essi allo stesso modo di your_site.ru:

RiscriviCond %(HTTP_REFERER) !^$
RiscriviCond %(HTTP_REFERER) !^http(s)?://(www.)?tuo_sito.ru
RiscriviCond %(HTTP_REFERER) !^http(s)?://(www.)?yandex.ru
RiscriviCond %(HTTP_REFERER) !^http(s)?://(www.)?yahoo.
RiscriviCond %(HTTP_REFERER) !^http(s)?://(www.)?google.
RiscriviCond %(HTTP_REFERER) !^http(s)?://(www.)?bing.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

3.2. Protezione della password

Utilizzando il file di configurazione aggiuntivo.htacces è possibile impostare una password per una directory del sito, un file specifico o un gruppo di file con la stessa estensione.

Per impostare una password per una directory, in .htaccess devi scrivere:

AuthName "Cosa vuoi?"
AuthType Base

richiedono un utente valido

Il file .htaccess contenente queste righe dovrà essere inserito nella directory alla quale vogliamo bloccare l'accesso. Quando un utente tenta di accedere alla sezione corrispondente del sito, il server fornirà un codice di stato 401 (autorizzazione richiesta) e visualizzerà una finestra con campi per l'inserimento di nome utente e password e il messaggio "Cosa vuoi?" specificato in la direttiva “AuthName” (solo caratteri latini e numeri).

I nomi utente e le password sono memorizzati nel file .htpasswd. Il percorso di questo file è specificato nella direttiva "AuthUserFile".

Importante: Il percorso del file .htpasswd è specificato come assoluto, dalla directory root del server.

Per conoscere il percorso di .htpasswd, che dovrà essere specificato in .htaccess, è possibile creare un file php contenente:

< ?php echo $_SERVER["DOCUMENT_ROOT"]; ? >

Carica questo file sul server nello stesso posto in cui si trova .htpasswd e aprilo nel browser. Nella pagina generata vedrai il percorso assoluto della directory specificata dalla directory root del server.

È possibile impostare una password per un file specifico come segue:

< Files file.txt >
AuthName "Non è per tutti"
AuthType Base
AuthUserFile /home/server/tuo_sito.ru/pass/.htpasswd

Password per un gruppo di file:

< Files "\.(sql)$" >
AuthName "Non è per tutti"
AuthType Base
AuthUserFile /home/server/tuo_sito.ru/pass/.htpasswd

In questo caso tutti i file con estensione .sql saranno accessibili solo con una password.

Non dimenticare di scrivere il tuo commento se l'articolo ti è piaciuto. Qualche parola da parte tua e da parte mia: riconoscimento da parte dei motori di ricerca che scrivo normali articoli umani. Grazie in anticipo!