2008-12-22 7 views
1

Sur mon site Joomla, j'ai ajouté des RewriteRules assez simples à mon fichier .htaccess. Ce sont toutes des règles un-à-un comme celle-ci, puisque je change la structure du fichier du site et que je ne veux pas casser mes anciens liens.Aide avec mod_rewrite et Joomla

RewriteRule ^content/view/54/48/$ /courses [R] 

Ce sont en plus des règles existantes qui sont emballés avec Joomla:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] 
RewriteRule (.*) index.php 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 

Si je commente les règles Joomla existantes, je peux voir que ma règle fonctionne correctement et quand je tapez http://example.com/content/view/54/48/ ma barre d'adresse du navigateur change en http://example.com/courses, cependant si je laisse ces autres règles, alors Joomla ne sait pas quoi en faire (cela donne une "erreur de composant inconnue"). Si je tape http://example.com/courses directement, alors cela fonctionne comme prévu, donc j'ai l'impression que c'est un problème avec ma réécriture, pas Joomla. Je pensais que les RewriteRules agissaient les unes sur les autres dans l'ordre. par exemple:

RewriteRule a b 
RewriteRule b c # a request for "a" will take you to "c" 

Je suis sur l'hébergement mutualisé, donc je ne peux malheureusement pas tourner le journal sur. Est-ce que quelqu'un a des conseils pour moi?

Répondre

4

Essayez de changer le [R] dans la règle à [R, L] ...

+2

Peut-être que certaines personnes pourraient bénéficier de savoir que [L] signifie « règle de la dernière » et arrêtera les règles Joomla d'exécuter lorsque cette règle a été lancée. – PEZ