Apache mod_rewrite

Αθανάσιος Οικονόμου athoik at gmail.com
Thu Nov 29 14:50:06 EET 2007


Στις 29/11/2007, Harris Kosmidhs <hkosmidi at laboratorium.gr> έγραψε:
>
> Καλησπέρα,
>
> προσπαθώ να χρησιμοποιήσω το rewrite του apache2 για να φτιάξω μια
> σελίδα αλλά κολλάω σε ένα πρόβλημα συνέχεια.
>
> Έχω στο .htaccess :
>
> RewriteEngine On
> RewriteBase   /music/
> RewriteRule
> ^/.*(\.css)|(\.jpg)|(\.png)|(\.html)|(\.gif)|(\.js)|(\.txt)|(\.ico)$ - [L]
> RewriteRule ^(.*)/(.*)/(.*)$ index.php?module=$1&event=$2&params=$3 [L]
> RewriteRule ^(.*)/(.*)$ index.php?module=$1&event=$2 [L]
>
> Έστω ότι πάω στο http://localhost:81/music/admin/login. Όντως φορτώνει
> το κατάλληλο module από το index.php (δηλαδή παίζει το 2ο rewrite rule).
> Το πρόβλημα που έχω είναι με τις φωτογραφίες και τα css. Έτσι αν κάπου
> στον κώδικα έχω <img src="images/no.gif"> τότε αυτή δε φορτώνεται.
>
> Κάτι σχετικό που βλέπω στα logs αλλά δεν καταλαβαίνω τι είναι :
>
> 127.0.0.1 - - [29/Nov/2007:14:06:42 +0200]
> [localhost/sid#8e2ec8][rid#ec6260/initial] (1) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] pass through C:/Program Files/EasyPHP
> 2.0b1/www/music/style.css
> 127.0.0.1 - - [29/Nov/2007:14:06:42 +0200]
> [localhost/sid#8e2ec8][rid#ecf320/initial] (3) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] strip per-dir prefix: C:/Program
> Files/EasyPHP 2.0b1/www/music/xajax/xajax_js/xajax.js ->
> xajax/xajax_js/xajax.js
> 127.0.0.1 - - [29/Nov/2007:14:06:42 +0200]
> [localhost/sid#8e2ec8][rid#ecf320/initial] (3) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] applying pattern
> '^/.*(\.css)|(\.jpg)|(\.png)|(\.html)|(\.gif)|(\.js)|(\.txt)|(\.ico)$'
> to uri 'xajax/xajax_js/xajax.js'
> 127.0.0.1 - - [29/Nov/2007:14:06:42 +0200]
> [localhost/sid#8e2ec8][rid#ecf320/initial] (1) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] pass through C:/Program Files/EasyPHP
> 2.0b1/www/music/xajax/xajax_js/xajax.js
> 127.0.0.1 - - [29/Nov/2007:14:06:42 +0200]
> [localhost/sid#8e2ec8][rid#ec6260/initial] (3) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] add path info postfix: C:/Program
> Files/EasyPHP 2.0b1/www/music/admin -> C:/Program Files/EasyPHP
> 2.0b1/www/music/admin/images/loading.gif
> 127.0.0.1 - - [29/Nov/2007:14:06:42 +0200]
> [localhost/sid#8e2ec8][rid#ec6260/initial] (3) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] strip per-dir prefix: C:/Program
> Files/EasyPHP 2.0b1/www/music/admin/images/loading.gif ->
> admin/images/loading.gif
> 127.0.0.1 - - [29/Nov/2007:14:06:42 +0200]
> [localhost/sid#8e2ec8][rid#ec6260/initial] (3) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] applying pattern
> '^/.*(\.css)|(\.jpg)|(\.png)|(\.html)|(\.gif)|(\.js)|(\.txt)|(\.ico)$'
> to uri 'admin/images/loading.gif'
> 127.0.0.1 - - [29/Nov/2007:14:06:43 +0200]
> [localhost/sid#8e2ec8][rid#ec6260/initial] (1) [perdir C:/Program
> Files/EasyPHP 2.0b1/www/music/] pass through C:/Program Files/EasyPHP
> 2.0b1/www/music/admin
>
> (μην ακούσω κράξιμο! τώρα είμαι σε win και κάνω τις δοκιμές, αλλά και
> στο σπίτι με apache2 σε linux τα ίδια μου κάνει).
>
> Έχει κανείς καμιά ιδεά; Το 1ο rewrite rule το βρήκα κάπου ψάχνοντας για
> το πρόβλημά μου. *Υποψιάζομαι* ότι το
> ^/.*(\.css)|(\.jpg)|(\.png)|(\.html)|(\.gif)|(\.js)|(\.txt)|(\.ico)$
> δουλεύει για το music/mystyle.css πχ, αλλά όχι για το
> music/admin/mystyle.css
>
> Ευχαριστώ και σορρυ για το off-topic.
> Χάρηε


Νομίζω πως το παραπάνω κάνει match ότι τελειώνει σε .ico$

Για δοκίμασε το παρακάτω :

^/.*((\.css)|(\.jpg)|(\.png)|(\.html)|(\.gif)|(\.js)|(\.txt)|(\.ico))$

Έτσι ώστε το $ να εφαρμοστεί σε όλα τα extensions.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hellug.gr/pipermail/linux-greek-users/attachments/20071129/9d0700ab/attachment.htm>


More information about the Linux-greek-users mailing list