SEF διευθύνσεις, Joomla και ΠΣΔ

Ξεκίνησε από odysseas, 11 Φεβ 2012, 01:49:36 ΠΜ

« προηγούμενο - επόμενο »

odysseas

Έχει στήσει κάποιος συνάδελφος το Joomla 1.7 στο ΠΣΔ, με Search Engine Friendly διευθύνσεις ενεργοποιημένες; Θα μπορούσε να αναρτήσει το .htaccess αρχείο που χρησιμοποιεί;

apapakL

Καλησπέρα συνάδελφε. Σχολίασε τη γραμμή με τη ντιρεκτίβα «Options +FollowSymLinks» γιατί μάλλον είναι ορισμένη στις γενικές ρυθμίσεις του apache. Ετσι δεν θα εμφανίζεται το λάθος «Internal Server Error». Επίσης προσοχή στη ντιρεκτίβα «RewriteBase /». Αν δεν έχεις τα αρχεία του joomla στο root directory του λογαριασμού σου, πρέπει να τη προσαρμόσεις αναλόγως (π.χ. RewriteBase /joomlafiles)...

Επισυνάπτω αυτό που χρησιμοποιώ για το joomla 1.5. Ελπίζω να βοηθήσει...

##
# @version $Id: htaccess.txt 21064 2011-04-03 22:12:19Z dextercowley $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


#####################################################
#  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################

##  Can be commented out if causes errors, see notes above.
#Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode data within the URL
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
########## End - Rewrite rules to block out some common exploits


########## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#

Redirect /apapakl http://www.apapakl.mysch.gr

########## End - Custom redirects


#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

RewriteBase /


########## Begin - Joomla! core SEF Section
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
########## End - Joomla! core SEF Section

odysseas

Ευχαριστώ για την απάντηση.

Παράθεση από: apapakl στις 11 Φεβ 2012, 12:24:55 ΜΜ
Σχολίασε τη γραμμή με τη ντιρεκτίβα «Options +FollowSymLinks» γιατί μάλλον είναι ορισμένη στις γενικές ρυθμίσεις του apache. Ετσι δεν θα εμφανίζεται το λάθος «Internal Server Error». Επίσης προσοχή στη ντιρεκτίβα «RewriteBase /».

Αυτά τα δύο τα είχα κάνει και ήταν οι μοναδικές αλλαγές στο αρχικό .htaccess. Αυτό που συνέβη ήταν οτι όποιο link κι αν ακολουθούσα έβγαινα στην αρχική σελίδα! Μετά από την απάντησή σου υποψιάζομαι οτι ίσως δε φταίει το .htaccess. Αλλά δεν έχω ιδέα που αλλού θα μπορούσα να κοιτάξω.  :(

odysseas

Από τα λίγα που καταλαβαίνω, όλη η ιστορία γίνεται για να ξαναγράφονται στον server αιτήματα του τύπου http://mydomain.com/foo σε http://mydomain.com/index.php/foo. Εγώ αυτό βλέπω να αλλάζει στα links όταν ενεργοποιώ το URL Rewritting.

Ποιος είναι ο κανόνας που το χειρίζεται αυτό στο .htaccess; Το κοντινότερο που μπορώ να βρω είναι το:
RewriteRule .* index.php [L]

Αυτό όμως πιο πολύ μου φαίνεται να οδηγεί στο πρόβλημα που περιγράφω (όλα στην αρχική σελίδα), παρά στην επιθυμητή συμπεριφορά. Χάνω κάτι ή μου φαίνεται;

Πάντως δοκίμασα, από περιέργεια, να αντικαταστήσω τον κανόνα αυτόν με τον εξής:
RewriteRule (.*) index.php/$1 [L]

και δούλεψε. Ψάχνοντας βέβαια δεν είδα πουθενά κανέναν να αναφέρει οτι χρειάζεται τέτοια αλλαγή, σε όλους δουλεύει ως έχει, οπότε φαντάζομαι οτι κάπου αλλού βρίσκεται το πρόβλημα.

apapakL

Χμμμ... Όταν χρησιμοποιώ το .htaccess (μαζί και τις επιλογές «URL Φιλικό προς τις Μηχανές Αναζήτησης» και «Χρήση του URL rewriting» ενεργοποιημένες από την κονσόλα διαχείρισης)  γίνεται μάλλον το ανάποδο δηλ.  ξαναγράφονται στον server αιτήματα του τύπου http://mydomain.com/index.php/foo σε http://mydomain.com/foo  :o. Επίσης, κάποτε είχε στείλει το ΠΣΔ οδηγία να βάλουμε στη μεταβλητή var live_site του configuration.php το url της μορφής πχ. http://users.sch.gr/schusername. Επειδή χρησιμοποιώ την υπηρεσία dns αυτό δημιουργούσε προβλήματα... μήπως έχεις βάλει ακολουθήσει αυτή την οδηγία;

odysseas

Παράθεση από: apapakl στις 11 Φεβ 2012, 08:20:30 ΜΜ
Χμμμ... Όταν χρησιμοποιώ το .htaccess (μαζί και τις επιλογές «URL Φιλικό προς τις Μηχανές Αναζήτησης» και «Χρήση του URL rewriting» ενεργοποιημένες από την κονσόλα διαχείρισης)  γίνεται μάλλον το ανάποδο δηλ.  ξαναγράφονται στον server αιτήματα του τύπου http://mydomain.com/index.php/foo σε http://mydomain.com/foo  :o.

Όταν ενεργοποιείται το URL Rewriting τότε από όλα τα links του site αφαιρείται το index.php, επειδή όταν λάβει την αίτηση ο server θα το συμπληρώσει μόνος με τους κατάλληλους rewritting κανόνες.

Παράθεση από: apapakl στις 11 Φεβ 2012, 08:20:30 ΜΜ
Επίσης, κάποτε είχε στείλει το ΠΣΔ οδηγία να βάλουμε στη μεταβλητή var live_site του configuration.php το url της μορφής πχ. http://users.sch.gr/schusername. Επειδή χρησιμοποιώ την υπηρεσία dns αυτό δημιουργούσε προβλήματα... μήπως έχεις βάλει ακολουθήσει αυτή την οδηγία;

Κι εμείς έχουμε άλλο domain που δείχνει στο ΠΣΔ. Ψάχνοντας χθες να λύσω το πρόβλημα δοκίμασα να πειράξω και τη live_site. Είτε είναι κενή, είτε περιέχει το domain μας, το ίδιο πράγμα γίνεται.

apapakL

Τι να πω... Χρησιμοποιώ το .htaccess σε διάφορα site στο ΠΣΔ και δεν έχω αντιμετωπίσει ανάλογο πρόβλημα... Πάντως δοκίμασα την αλλαγή που λες και σε joomla 1.5 και σε joomla 1.7 και δουλεύει...

odysseas

Να 'σαι καλά, ευχαριστώ για το χρόνο σου.  :)

Νίκος Αδαμόπουλος

Το ίδιο ερώτημα έχω κι εγώ...

Έχω τα αρχεία του joomla (2.5.7) σε υποφάκελο του root του χώρου μου στον server του ΠΣΔ...

Στην προσπάθειά μου για φιλικότερα URL, έχω αλλάξει το:
Ρυθμίσεις SEO -> URL Φιλικό προς τις Μηχανές Αναζήτησης [Ναι]

... και παίζει εντάξει χωρίς το αρχείο .htaccess

Στην επόμενη προσπάθειά μου να μη φαίνεται το index στο URL ( xxxx/index.php/xxxxxx ), αλλάζω το:
Ρυθμίσεις SEO -> Αναδιατύπωση URL [Ναι]

... και βάζω το αρχείο htaccess με τις αλλαγές που προτείνετε αλλά δεν μπορώ να πω ότι μου δουλεύει!

Σε τι κατάσταση έχετε αφήσει το θέμα εσείς;
Έχει ασχοληθεί κι άλλος με αυτό;

Ο τελικός σκοπός μου ήταν να μη φαίνεται ούτε και ο υποφάκελος του joomla μέσα στο URL... ! Αν δω ότι δεν το καταφέρνω θα δοκιμάσω να μετακινήσω το joomla στο root ... αν και δεν θα το ήθελα!

odysseas

Παράθεση από: Νίκος Αδαμόπουλος στις 02 Νοε 2012, 11:18:06 ΠΜ
Σε τι κατάσταση έχετε αφήσει το θέμα εσείς;
Έχει ασχοληθεί κι άλλος με αυτό;

Εγώ είχα υποβάλλει ticket και στο Σχολικό Δίκτυο, έγινε κάποια προσπάθεια αλλά το πρόβλημα έμεινε ανοιχτό. Θυμάμαι πάντως οτι, την εποχή που το έψαχνα, ο κόσμος που είχε παρόμοια ζητήματα (γενικά, όχι στο ΠΣΔ) τα έλυνε στο επίπεδο του provider. Δηλαδή το πιθανότερο είναι οτι το πρόβλημα βρίσκεται στις ρυθμίσεις της php στο ΠΣΔ.

Δημήτρης Κανάς

Λοιπόν, ένας τεχνικός του Π.Σ.Δ. (να είναι καλά ο άνθρωπος για τις άμεσες απαντήσεις του) με ενημέρωσε πως το ζήτημα αυτό σχετίζεται με τον μηχανισμό ασφαλείας suphp που εφαρμόζεται στους web server του Π.Σ.Δ. Έγινε μια γενική ρύθμιση (που δε γνωρίζω πια) και το ζήτημα έπρεπε να είχε λυθεί γι` όλους. Βέβαια γνωρίζω αρκετούς που έχουν ακόμα αυτό το ζήτημα...

Στον προσωπικό μου λογαριασμό δεν έχω κανένα πρόβλημα με την ενεργοποίηση των φιλικών, χωρίς επέμβαση στο .htaccess αν και χρησιμοποιώ διαφορετικό CMS...
Powered by Elxis : LabSchool.mysch.gr

Νίκος Αδαμόπουλος

Παράθεση από: Νίκος Αδαμόπουλος στις 02 Νοε 2012, 11:18:06 ΠΜ
... θα δοκιμάσω να μετακινήσω το joomla στο root ...

Καταγράφω μερικά συμπεράσματά μου από δοκιμές σχετικά με τη μετακίνηση της δομής των φακέλων του joomla σε άλλο φάκελο ή στο root:

(Παρατηρήσεις: α) έστω ότι μιλάμε για τον χρήστη username του ΠΣΔ,  β) όλα τα παρακάτω ισχύουν χωρίς την παρουσία του αρχείου .htaccess)

Αν το joomla βρίσκεται στο φάκελο joomla257 του χώρου του χρήστη, ανάλογα από το αν έχει ρυθμιστεί από τον πίνακα ελέγχου του joomla, το: "URL Φιλικό προς τις Μηχανές Αναζήτησης": [Όχι] - [Ναι], τα αντίστοιχα ενδεικτικά URLs θα είναι:

1. http://users.sch.gr/username/joomla257/index.php?option=com_content&view=category&id=2&Itemid=102
2. http://users.sch.gr/username/joomla257/index.php/education

  ( τα παραπάνω δουλεύουν σωστά αν στο αρχείο configuration.php του joomla, έχει ρυθμιστεί το:
        public $live_site = 'http://users.sch.gr/username/joomla257';;     
     ή:
        public $live_site = '';
  )

και:

3. http://username.mysch.gr/joomla257/index.php?option=com_content&view=category&id=2&Itemid=102
4. http://username.mysch.gr/joomla257/index.php/education

  ( τα παραπάνω δουλεύουν σωστά αν στο αρχείο configuration.php του joomla, έχει ρυθμιστεί το:
        public $live_site = 'http://username.mysch.gr/joomla257';;     
     ή:
        public $live_site = '';
  )

Έτσι, αν θέλει κάποιος να δουλεύουν σωστά και τα δύο ονόματα: http://username.mysch.gr/joomla257  και  http://users.sch.gr/username/joomla257  τότε θα πρέπει να έχει τη ρύθμιση public $live_site = '';

Αν απλώς μετονομαστεί ο φάκελος του joomla, τότε αλλάζουν ανάλογα και τα αντίστοιχα URL χωρίς καμία αλλαγή σε ρυθμίσεις, εκτός της $live_site. Αν όμως έχει ορισθεί public $live_site = '' τότε ούτε καν αυτό χρειάζεται να αλλάξει.

Τα ίδια ισχύουν αν όλη η δομή των φακέλων/αρχείων του joomla μετακινηθεί στο root. Στην περίπτωση αυτή τα ενδεικτικά URLs θα είναι αντίστοιχα:

1. http://users.sch.gr/username/index.php?option=com_content&view=category&id=2&Itemid=102
2. http://users.sch.gr/username/index.php/education
3. http://username.mysch.gr/index.php?option=com_content&view=category&id=2&Itemid=102
4. http://username.mysch.gr/index.php/education

Δημήτρης Κανάς

Νίκο, γιατί κάποιος να θέλει να κρατήσει (και να δηλώσει) την παλιά μορφή της ονοματολογίας (users.sch.gr/username) απ` ότι στιγμή που μπορεί να επιλέξει οποιαδήποτε λέξεις (πέρα του Username) στη διεύθυνση που ταιριάζουν και στην θεματολογία του site του;
Powered by Elxis : LabSchool.mysch.gr

Νίκος Αδαμόπουλος

Παράθεση από: Δημήτρης Κανάς στις 03 Νοε 2012, 11:43:30 ΜΜ
Νίκο, γιατί κάποιος να θέλει να κρατήσει (και να δηλώσει) την παλιά μορφή της ονοματολογίας (users.sch.gr/username) απ` ότι στιγμή που μπορεί να επιλέξει οποιαδήποτε λέξεις (πέρα του Username) στη διεύθυνση που ταιριάζουν και στην θεματολογία του site του;

Χμμ! Για ιστορικούς λόγους ίσως; Πάντως από τη στιγμή που έτσι κι αλλιώς ισχύει το users.sch.gr/username, γιατί να μη δουλεύει κι αυτό;

dtsilog

Πολύ νωρίς είδες τα Όχι να γίνονται Ίσως... ΑΝΤΙΣΤΑΣΗ και ΑΝΤΙΔΡΑΣΗ έννοιες που ΧΑΘΗΚΑΝ! (*ΔΕΝ)