Βοήθεια σε htaccess

Τεχνικές και μόνο Συζητήσεις για WEB hosting servers, Mail servers, DNS servers. Όχι αναζήτηση υπηρεσιών εδώ!

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Βοήθεια σε htaccess

Δημοσίευση από korgr » 21 Μαρ 2013 18:56

Έχω το ακόλουθο htaccess:

Κώδικας: Επιλογή όλων

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /httpdocs/handler.php [L]
το οποίο μεταφέρει όλα τα not found στο handler.php στο html root του site

Δουλεύει μια χαρά.

Σε περίπτωση που είμαστε είτε σε κάποιο/α direcories πιο μέσα (πχ httpdocs/folder_name/new/) ή το root του server δεν είναι httpdocs αλλά public_html, θα πρέπει να δώσω ρητά στο htaccess το real path προς το handler.php

Υπάρχει τρόπος αυτό το path να ορίζεται αυτόματα από κάποια μεταβλητή (πχ %{current_path_of_htaccess} ώστε να γίνεται target το handler.php που βρίσκεται στο τρέχον directory χωρίς να το ορίζω ρητά?

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Βοήθεια σε htaccess

Δημοσίευση από alou » 21 Μαρ 2013 19:53

$_SERVER['DOCUMENT_ROOT'] φαντάζομαι σε καλύπτει.
edit: OK λάθος κατάλαβα... ζαλάδα :/

Το %{DOCUMENT_ROOT} ?

Και κάτι άσχετο, τα symlinks ίσως καλύτερα έτσι αν είναι σε shared

Κώδικας: Επιλογή όλων

Options -FollowSymLinks
Options +SymLinksIfOwnerMatch

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Βοήθεια σε htaccess

Δημοσίευση από gvre » 21 Μαρ 2013 20:16

korgr έγραψε:Υπάρχει τρόπος αυτό το path να ορίζεται αυτόματα από κάποια μεταβλητή (πχ %{current_path_of_htaccess} ώστε να γίνεται target το handler.php που βρίσκεται στο τρέχον directory χωρίς να το ορίζω ρητά?
Για ποιο λόγο θέλεις να έχεις handler.php σε κάθε directory;

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6235
Εγγραφή: 30 Νοέμ 2004 03:09

Βοήθεια σε htaccess

Δημοσίευση από fafos » 21 Μαρ 2013 20:26

to "ErrorDocument 404 /handler.php" den douleuei?
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Βοήθεια σε htaccess

Δημοσίευση από korgr » 21 Μαρ 2013 21:31

@gvre
Δεν το θέλω σε κάθε directory, το θέλω στο ίδιο directory που βρίσκεται και το htaccess
πχ στο root μιας εγκατάστασης του Odyssey που δεν είναι απαραίτητα πάντα στο root του hosting

@fafos
Δουλεύει αλλά με /handler.php πρέπει το handler.php να είναι στο root του hosting
Αν εγκαταστήσουμε το site σε directory (πχ /new) τότε πρέπει να δηλώσω στο htaccess /new/handler.php μόνο που δεν ξέρω κάθε φορά το όνομα του directory (γι' αυτό ψάνω ένα τρόπο να το βρίσκει αυτόματα το htaccess βασιζόμενο στο path που το ίδιο βρίσκεται)

Με λίγα λόγια να έχω ένα κοινό περιεχόμενο στο htaccess που να δουλεύει σε οποιοδήποτε directory το βάλω...

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6235
Εγγραφή: 30 Νοέμ 2004 03:09

Βοήθεια σε htaccess

Δημοσίευση από fafos » 21 Μαρ 2013 21:50

den xero an sou doulepsei to %{REQUEST_URI}
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Βοήθεια σε htaccess

Δημοσίευση από gvre » 21 Μαρ 2013 22:22

Μπορείς να βάλεις το 404.php και το .htaccess στον ίδιο φάκελο και να έχεις το παρακάτω rewrite.

Κώδικας: Επιλογή όλων

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* 404.php [L]
Θα χρειαστεί ακόμα να προσθέσεις το παρακάτω στο 404.php.

Κώδικας: Επιλογή όλων

header("HTTP/1.1 404 Not Found");
header("Status: 404 Not Found");

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Βοήθεια σε htaccess

Δημοσίευση από korgr » 22 Μαρ 2013 09:02

gvre thanks με ξεμπλόκαρες!
Όχι πως δεν το είχα δοκιμάσει το relative path, αλλά επειδή το δοκίμαζα στον local server και δεν μου δούλευε, θεώρησα πως είναι λάθος. Όταν το πρότεινες και εσύ, σκέφτηκα πως έχει βάση και έτσι το δοκίμασα και online όπου δούλεψε!!! :D

Μάλλον δεν δουλεύει στο localhost επειδή παίζω πολύ με aliases έχοντας τα τοπικά sites σε διαφορετικό δίσκο από τον apache.

Τέλος, το htaccess αυτό δεν αφορά καθαρά το 404 αλλά τα SEF URLs του Odyssey τα οποία δεν στηρίζονται σε apache rewriting αλλά σε php rewriting με το handler.php :)

Απάντηση

Επιστροφή στο “Apache, IIS, DNS Servers”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες