Μετάβαση στο περιεχόμενο

htaccess αρχείο - τι είναι και σε τι χρησιμεύει;

Το .htaccess είναι ένα αρχείο του web server που μπορεί να αλλάζει ρυθμίσεις και να επιτρέπει την δημιουργία πολλών λειτουργιών, όπως πχ σελίδων σφάλματος 404 (η σελίδα δεν βρέθηκε), ανακατευθύνσεων και εντολών. Το .htaccess είναι εύκολο στην χρήση και στην σύνταξή του καθώς περιλαμβάνει μόνο μερικές απλές εντολές γραμμένες σε ένα αρχείο κειμένου (txt).

Υποστηρίζει ο server μου .htaccess;

Εάν ο διακομιστής στον οποίο βρίσκεται η ιστοσελίδα σας είναι Unix ή Linux ή τρέχει Apache τότε το πιθανότερο είναι να έχετε υποστήριξη htaccess εκτός αν δεν επιτρέπει κάτι τέτοιο ο διαχειριστής του συστήματός σας. Επίσης αν έχετε δυνατότητα δημιουργίας / χρήσης προστατευμένων καταλόγων τότε και πάλι το πιθανότερο είναι να υποστηρίζονται τα αρχεία .htaccess. Η DNHOST υποστηρίζει τα .htacess αρχεία στους hosting servers της.

Τι μπορεί να κάνει το .htaccess;

Κάποιες από τις πραγματικά πάμπολλες δυνατότητες του .htaccess: προστασία καταλόγων με κωδικό, αυτόματη ανακατεύθυνση χρηστών, δικές σας σελίδες σφαλμάτων (custom error pages), φιλτράρισμα διευθύνσεων IP ώστε να επιτρέπεται ή να αποκλείεται η πρόσβασή τους στη σελίδα, ρύθμιση του directory browsing.

Δημιουργία αρχείου .htaccess

Δημιουργήστε ένα νέο αρχείο κειμένου (txt) και δώστε του το όνομα .htaccess. Εάν το λειτουργικό σας δεν σας επιτρέπει τη δημιουργία αρχείων χωρίς όνομα και μόνο με την επέκταση .htaccess τότε δώστε του το όνομα htaccess.txt, ανεβάστε το στο site σας και μέσω FTP μετονομάστε το σε .htaccess.

Τυπικές σελίδες σφαλμάτων (Custom Error Pages)

Μπορείτε αντί των προεπιλεγμένων να χρησιμοποιήσετε τις δικές σας σελίδες σφαλμάτων στο site σας. Το πλεονέκτημα τις χρήσης των δικών σας σελίδων σφαλμάτων είναι τόσο αισθητικό (καλαίσθητες σελίδες αντί των άχαρων του διακομιστή σας) όσο και λειτουργικό (ο επισκέπτης δεν φεύγει από το site, έχει μπροστά του ακόμα μενού και συνδέσμους να επιλέξει κάτι άλλο). Μπορείτε να δημιουργήσετε τέτοιες σελίδες για οποιοδήποτε σφάλμα αρκεί να γνωρίζετε τον αριθμό του (πχ 404 για το «η σελίδα δεν βρέθηκε»). Η αντίστοιχη εντολή στο αρχείο .htaccess έχει την μορφή: ErrorDocument αριθμός_ασφάλματος /διαδρομή στο αρχείο/file.html Για παράδειγμα αν θέλετε να φτιάξετε μία δική σας σελίδα σφάλματος για το σφάλμα 404 δημιουργήστε την σελίδα και δώστε της ένα όνομα (έστω not_found.html στο root directory) και κατόπιν προσθέστε στο .htaccess το εξής: ErrorDocument 404 /not_found.html

Τα πιο συχνά σφάλματα είναι τα εξής:

401 - Authorization Required (απαιτείται πιστοποίηση) 400 - Bad request (κακό αίτημα) 403 - Forbidden (απαγορεύεται) 500 - Internal Server Error (εσωτερικό σφάλμα διακομιστή) 404 - Wrong page (λάθος σελίδα)

Χρήσιμες εφαρμογές .htaccess:

- Περιορισμός της πρόσβασης σε ορισμένα directories με χρήση passwords. - Ανακατεύθυνση σε άλλη ιστοσελίδα. - Χειρισμός μηνυμάτων για διάφορες καταστάσεις. - Αλλαγή Mime-types. - Ενεργοποίηση/απενεργοποίηση διαφόρων λειτουργιών του server.

Χρήσιμα παραδείγματα και τεχνικές για το αρχείο .htaccess

Ενεργοποίηση της περιήγησης σε ένα φάκελο

Options +Indexes

## Αποκλεισμός κάποιων τύπων αρχείων ώστε να μην προβάλλονται

IndexIgnore *.wmv *.mp4 *.avi

Απενεργοποίηση της περιήγησης σε ένα φάκελο

Options All -Indexes

Προσαρμοσμένες σελίδες σφαλμάτων

ErrorDocument 403 /forbidden.html

ErrorDocument 404 /notfound.html

ErrorDocument 500 /servererror.html

Κάντε το SSI να λειτουργεί με σελίδες HTML/SHTML

AddType text/html .html

AddType text/html .shtml

AddHandler server-parsed .html

AddHandler server-parsed .shtml

Αλλαγή της προεπιλεγμένης σελίδας

DirectoryIndex myhome.htm index.htm index.php

Αποκλεισμός πρόσβασης στο site για συγκεκριμένους χρήστες

order deny,allow

deny from 205.55.152.53

deny from 8.50.55.53

deny from .spammer.com

allow from all

όπου 205.55.152.53 8.50.55.53 .spammer.com είναι ενδεικτικές τιμές IP και domains που θέλετε να αποκλείσετε.

Επιτρέψτε την πρόσβαση μόνο σε χρήστες του εσωτερικού δικτύου

order deny,allow

deny from all

allow from 192.168.0.0/24

Ανακατεύθυνση των χρηστών σε νέα σελίδα/κατάλογο

Redirect oldpage.html http://www.mydomain.gr/newpage.html

Redirect /olddir http://www.mydomain.gr/newdir/

Μπλοκάρετε τα Hotlinks

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.gr/.*$ [NC]

RewriteRule .(gif|jpg)$ - [F]

Αλλάξτε την επέκταση των script σας

AddType application/x-httpd-php .gne

Redirection από ένα domain χωρίς "www" προς το ίδιο domain με "www".

Όταν ο χρήστης ανοίγει το site "mydomain.gr" να τον κατευθύνει αυτόματα στο "www.mydomain.gr":

RewriteEngine on

RewriteCond %{HTTP_HOST} ^mydomain.gr [NC]

RewriteRule ^(.*)$ http://www.mydomain.gr/$1 [L,R=301]