Bonjour tout le monde,
j'ai un petit soucis:
J'ai developpé mon propre Framework/CMS en locale.
Je souhaitais le passer aujourd'hui sur mon hébergement mutualisé 1and1, malheureusement, j'ai une grosse erreur 500 lorsque j'utilise le flag "END" dans mes rewritesRules.
A prioris (mais rien de sur) il semble que la version d'apache des hébergement 1and1 mutualisé sont en 1.3.4, et que le flag END a été ajouté à partir d'Apache 2.4.
je n'ai malheureusement pas trouvé le moyen de vérifier la version d'apache, il n'y a aucune information dans le phpinfo()
En tout cas, le fait est que le flag "END" me donne une belle erreur 500.
Je n'ai pas trouvé le moyen de contourner le problème:
si je supprime simplement mes flag END, plus rien ne fonctionne (par exemple, mes fichier .css / .js (etc) tournent en boucle).
Voici mon fichier actuel:
Comment puis-je faire pour avoir des rewriteRules sans le flag END qui puisse fonctionner tout de même ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 ErrorDocument 404 /error/index/error/404 ErrorDocument 403 /error/index/error/403 Options +FollowSymlinks -Indexes RewriteEngine on RewriteBase /mymorph_framework/ ## Downloads ## RewriteRule ^file-([0-9]+)\.html$ file.php?id=$1&%{QUERY_STRING} [L] ## Cas particulier ## RewriteRule ^admin/admin.css$ myMorph/cms/admin/admin.css [L,END] RewriteRule ^admin/images/(.+)$ myMorph/cms/admin/images/$1 [L,END] RewriteRule ^myMorph/admin/general/news/uploadimage.php(.+)$ myMorph/cms/admin/general/news/uploadimage.php$1 [L,END] ## General ## RewriteRule ^blocks/(.+)$ myMorph/cms/blocks/$1 [L,END] RewriteRule ^composants/(.+)$ myMorph/cms/composants/$1 [L,END] RewriteRule ^modules/(.+)$ myMorph/framework/modules/$1 [L,END] RewriteRule ^themes/(.+)$ myMorph/themes/$1 [L,END] RewriteRule ^multimedia/(.+)$ myMorph/cms/multimedia/$1 [L,END] RewriteRule ^function/javascript/(.+)$ myMorph/framework/function/javascript/$1 [L,END] RewriteCond %{REQUEST_URI} \.(?:js|css|jpg|jpeg|gif|png)$ RewriteRule ^admin/(.+)$ myMorph/cms/admin/$1 [L,END] ## Admin ## RewriteRule ^admin/([0-9A-Za-z]+)/([0-9A-Za-z]+)/(.+)/?$ index.php?com=admin&controller=$1&action=$2¶ms=$3&%{QUERY_STRING} [L,END] RewriteRule ^admin/([0-9A-Za-z]+)/([0-9A-Za-z]+)/?$ index.php?com=admin&controller=$1&action=$2&%{QUERY_STRING} [L,END] RewriteRule ^admin/([0-9A-Za-z]+)/?$ index.php?com=admin&controller=$1&%{QUERY_STRING} [L,END] RewriteRule ^admin/?$ index.php?com=admin&%{QUERY_STRING} [L,END] ## MVC ## RewriteRule ^([0-9A-Za-z]+)/?$ index.php?com=$1&%{QUERY_STRING} [L,END] RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z]+)/?$ index.php?com=$1&option=$2&%{QUERY_STRING} [L,END] RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z]+)/(.*)/?$ index.php?com=$1&option=$2¶ms=$3&%{QUERY_STRING} [L,END]
Si j'ai bien compris, il me faut une règle qui permette de forcer le fait de stopper les réécritures a la fin de mes règles.
Merci beaucoup
Edit:
Après avoir bidouillé un peu voici ce que je remarque:
J'apelle le lien: http://monsite.com/modules/jquery/thickbox-compressed.js
Le veritable lien (physique dirons-nous) est http://monsite.com/myMorph/framework/modules/jquery/thickbox-compressed.js
1) sans .htacess cela ne fonctionne pas, normal.
2) Si j'ajoute la ligne
Cela fonctionne correctement, j'arrive a atteindre mon fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^modules/(.+)$ myMorph/framework/modules/$1 [L]
3) si j'ajoute une seconde ligne:
Cela ne fonctionne de nouveau plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z]+)/(.*)/?$ index.php?com=$1&option=$2¶ms=$3&%{QUERY_STRING} [L]
J'ai l'impression que la première règle redirige correctement vers "http://monsite.com/myMorph/framework/modules/jquery/thickbox-compressed.js"
Mais que du coup, a ce moment, cette redirection tombe a nouveau dans la seconde règle, et tente donc de me rediriger vers
http://monsite.com/index.php?com=mymorph&option=framework¶ms=modules/jquery/thickbox-compressed.js
Pourtant je pensais que le drapeau "L" était sencé éviter ça ?
Des idées ?
Merci.
Partager