Προς το περιεχόμενο

Php mod_rewrite και search engine friendly domains


BonJovi

Προτεινόμενες αναρτήσεις

Δημοσ.

Οι απορίες μου είναι δύο.

 

1η Απορία

Έχω δημιουργήσει τοπικά ένα αρχείο .htaccess για να χρησιμοποιήσω το module mod_rewrite του Apache. Έχω γράψει μέσα στο αρχείο τα εξής:

 

RewriteEngine On

RewriteRule ^/?(dynamic|fixed|new)/([0-9]+)$ index.php?view=$1&id=$2 [L]

 

Δηλαδή, αν πληκτρολογήσω

http://localhost/dynamic/3,

 

ο server μού 'σερβίρει' στην ουσία τη σελίδα

http://localhost/index.php?view=dynamic&id=3.

 

Δεν ανοίγουν όμως τα images και τα αρχεία css που βρίσκονται στους καταλόγους /images και /stylesheets αντίστοιχα. Δε θέλω να βάλω absolute paths στον κώδικα αλλά θα ήθελα να χρησιμοποιήσω στο αρχείο .htaccess έναν κανόνα για να ανοίγουν σωστά οι εικόνες και τα css αρχεία.

 

2η Απορία

Ανέβασα το παραπάνω αρχείο .htaccess στο server ενός site που φτιάχνω, κι ενώ έχω ελέγξει και διαπιστώσει ότι το module mod_rewrite είναι ενεργοποιημένο, το site δεν ανοίγει και μού βγάζει internal server error. Mόλις διαγράφω το .htaccess από το server, όλα παίζουν κανονικά πάλι.

 

Μπορεί να προτείνει κανείς κάποια λύση σε κάποια από τις παραπάνω απορίες?

Δημοσ.
Δεν ανοίγουν όμως τα images και τα αρχεία css που βρίσκονται στους καταλόγους /images και /stylesheets αντίστοιχα

Δοκίμασε να προσθέσεις πιο πριν κάτι σαν:

>RewriteRule ^(stylesheets|images)(/.*)?$ - [L]

 

Υπάρχουν και άλλες επιλογές:

http://forum.modrewrite.com/viewtopic.php?p=10709#10709

 

το site δεν ανοίγει και μού βγάζει internal server error.

Μπορείς να δεις το error log του apache; Λογικά θα γράφει κάτι πιο συγκεκριμένο.

Δημοσ.

Δοκίμασα τοπικά το

RewriteRule ^(stylesheets|images)(/.*)?$ - [L],

 

αλλά δε λειτούργησε. Δεν ξέρω γιατί, παρόλο που βλέπω ότι σε πολλά sites προτείνεται ως λύση. Ίσως καταφύγω προσωρινά στη χρήση absolute paths, μέχρι να δω τι γίνεται.

 

Στη δεύτερη περίπτωση, πώς μπορώ να δω το error log του Apache? Σε ποιο κατάλογο συνήθως βρίσκεται και τι ονομασία έχει? Θα μπορώ να το δω εγώ ή θα πρέπει να έρθω σε επικοινωνία με κάποιον administrator της εταιρείας που φιλοξενεί το site?

Δημοσ.

Δοκίμασε στο stylesheet και οπουδήποτε αλλού, να βάζεις πλήρες το url , πχ "http://localhost/images/image1.gif"

και όχι κάτι σαν

"images/image1.gif"

 

Edit:

Με πρόλαβες ;)

Δημοσ.

1. εχω μια υποψια οτι ^ κατι σου χαλαει. αμα τη βγαλεις θα κανει match οπου βρει τη λεξη αλλα το /dynamic/ ειναι απιθανο να υπαρχει αλλου εκτος απο την αρχη. (Not the best solution)

 

2. αν ο τροπος που που βλεπει το home ο server ειναι αλλιως το rerwite θα γινει αλλανταλα. εμενα πχ.

localy ηταν /

ενω στο server τιποτα. με αποτελεσμα να μη δουλευει.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...