SEF URLs

Search Engine Optimization, Search Engine Positioning, Τρόποι προώθησης των σελίδων μας

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

Απάντηση
Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

SEF URLs

Δημοσίευση από cpulse » 20 Οκτ 2011 20:11

Έκανα ένα test να δω ακριβώς τι συμβαίνει. Λειτουργικά είναι τα ίδια, αλλά υπάρχουν κάποιες διαφοροποιήσεις.


Απλό rewrite
------------------
Σε επίπεδο PHP υπάρχει η μεταβλητή
$_SERVER['REDIRECT_STATUS'] => '200'

Στο access log καταγράφεται με status 200


ErrorDocument directive
------------------
Σε επίπεδο PHP υπάρχουν οι μεταβλητές
$_SERVER['REDIRECT_STATUS'] => '404'
$_SERVER['REDIRECT_REQUEST_METHOD'] => 'GET'

Στο access log καταγράφεται με status 404
Στο error log καταγράφεται με status 404

--

Λογικά με την μέθοδο rewrite μελλοντικά μπορείς να επέμβεις με περισσότερες λεπτομέριες στο URL, ενώ το ErrorDocument δεν έχει ευελιξία.

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

SEF URLs

Δημοσίευση από gvre » 20 Οκτ 2011 23:44

korgr έγραψε:Έχει κάτι άλλο καλό όμως το .htaccess του Joomla το οποίο δεν δημοσίευσα πριν:

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

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %&#123;QUERY_STRING&#125; &#40;\<|%3C&#41;.*script.*&#40;\>|%3E&#41; &#91;NC,OR&#93;
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %&#123;QUERY_STRING&#125; GLOBALS&#40;=|\&#91;|\%&#91;0-9A-Z&#93;&#123;0,2&#125;&#41; &#91;OR&#93;
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %&#123;QUERY_STRING&#125; _REQUEST&#40;=|\&#91;|\%&#91;0-9A-Z&#93;&#123;0,2&#125;&#41;
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^&#40;.*&#41;$ index.php &#91;F,L&#93;
Ένα security layer σε επίπεδο apache...
Use suhosin :)

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

SEF URLs

Δημοσίευση από gvre » 21 Οκτ 2011 00:11

cpulse έγραψε:Έκανα ένα test να δω ακριβώς τι συμβαίνει. Λειτουργικά είναι τα ίδια, αλλά υπάρχουν κάποιες διαφοροποιήσεις.

Απλό rewrite
------------------
Σε επίπεδο PHP υπάρχει η μεταβλητή
$_SERVER['REDIRECT_STATUS'] => '200'

Στο access log καταγράφεται με status 200
Αν το αρχείο δεν υπάρχει θα πρέπει να στείλεις τα κατάλληλα headers μέσω της php

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

header&#40;"HTTP/1.1 404 Not Found"&#41;;
header&#40;"Status&#58; 404 Not Found"&#41;;
και να κάνεις redirect στην κατάλληλη σελίδα, αν υπάρχει.

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

SEF URLs

Δημοσίευση από cpulse » 21 Οκτ 2011 00:19

gvre έγραψε:
korgr έγραψε:Έχει κάτι άλλο καλό όμως το .htaccess του Joomla το οποίο δεν δημοσίευσα πριν:

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

RewriteCond %&#123;QUERY_STRING&#125; mosConfig_&#91;a-zA-Z_&#93;&#123;1,21&#125;&#40;=|\%3D&#41; &#91;OR&#93;
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %&#123;QUERY_STRING&#125; base64_encode.*\&#40;.*\&#41; &#91;OR&#93;
# Block out any script that includes a <script> tag in URL
RewriteCond %&#123;QUERY_STRING&#125; &#40;\<|%3C&#41;.*script.*&#40;\>|%3E&#41; &#91;NC,OR&#93;
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %&#123;QUERY_STRING&#125; GLOBALS&#40;=|\&#91;|\%&#91;0-9A-Z&#93;&#123;0,2&#125;&#41; &#91;OR&#93;
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %&#123;QUERY_STRING&#125; _REQUEST&#40;=|\&#91;|\%&#91;0-9A-Z&#93;&#123;0,2&#125;&#41;
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^&#40;.*&#41;$ index.php &#91;F,L&#93;
Ένα security layer σε επίπεδο apache...
Use suhosin :)
Αυτό έχει προστεθεί στο Joomla 1.5 γιατί από τον καιρό του μπαμπά του (Mambo) και κατά την διάρκεια της έκδοσης 1.0.x συμβούλευε τους χρήστες να έχουν το register globals ανοιχτό. Αυτές οι ντιρεκτίβες είναι το αντίδοτο για το 99% των exploits.

Α μη τι άλλο μέσα από το Joomla έμαθα πως λειτουργούν τα botnets :reading:

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

SEF URLs

Δημοσίευση από korgr » 21 Οκτ 2011 10:22

gvre έγραψε: Αν το αρχείο δεν υπάρχει θα πρέπει να στείλεις τα κατάλληλα headers μέσω της php

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

header&#40;"HTTP/1.1 404 Not Found"&#41;;
header&#40;"Status&#58; 404 Not Found"&#41;;
και να κάνεις redirect στην κατάλληλη σελίδα, αν υπάρχει.

Αν έχεις Custom Error Page για ποιο λόγο να δίνουμε το HTTP/1.1 404 Not Found?
Ένα απλό header location δεν αρκεί;

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

SEF URLs

Δημοσίευση από cpulse » 21 Οκτ 2011 12:07

Για τις μηχανές.

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

SEF URLs

Δημοσίευση από gvre » 21 Οκτ 2011 12:25

Αν δε βάλεις το "HTTP/1.1 404 Not Found", ο server θα στείλει response code 200. Επίσης, το ίδιο header πρέπει να στέλνει και η custom error page. Ρίξε μια ματιά στο άρθρο του Google σχετικά με τα soft 404s.

Ενδιαφέροντα άρθρα σχετικά με τα 404 responses.
http://gsitecrawler.com/articles/error-404-200.asp
http://www.mcanerin.com/en/articles/301 ... -error.asp
http://alanstorm.com/magentos_many_404_pages

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

SEF URLs

Δημοσίευση από korgr » 21 Οκτ 2011 15:10

gvre πολύ κατανοητός και πολύ ωραία links!
Thanks και καλά που ρώτησα αλλιώς θα το είχα λάθος (θεωρούσα πως αφού υπάρχει η custom error page πρέπει να επιστρέφει 200 αντί 404)

Απάντηση

Επιστροφή στο “Μηχανές αναζήτησης & SEO”

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

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