IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

RewriteRules, flag END, et 1and1


Sujet :

Apache

  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut RewriteRules, flag END, et 1and1
    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:

    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&params=$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&params=$3&%{QUERY_STRING} [L,END]
    Comment puis-je faire pour avoir des rewriteRules sans le flag END qui puisse fonctionner tout de même ?

    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^modules/(.+)$	myMorph/framework/modules/$1 [L]
    Cela fonctionne correctement, j'arrive a atteindre mon fichier.
    3) si j'ajoute une seconde ligne:
    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&params=$3&%{QUERY_STRING} [L]
    Cela ne fonctionne de nouveau plus.

    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&params=modules/jquery/thickbox-compressed.js

    Pourtant je pensais que le drapeau "L" était sencé éviter ça ?
    Des idées ?
    Merci.

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ta "seconde ligne" qui fait planter ta règle qui marche seule, tu l'as ajoutée où par rapport à cette règle qui marche seule ? Avant ou après ? Si c'est avant, c'est normal que ça n'aille pas car le masque de cette seconde règle matche aussi l'URL http://monsite.com/modules/jquery/thickbox-compressed.js. Il faut donc la placer après.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Non non, elle est bien après
    C'est ça que je ne comprends pas, normalement avec la règle [L] ça devrait être bon, non ?

    Pour rapelle:

    http://monsite.com/modules/jquery/thickbox-compressed.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^modules/(.+)$	myMorph/framework/modules/$1 [L]
    OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^modules/(.+)$				myMorph/framework/modules/$1 [L]
    RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z]+)/(.*)/?$	index.php?com=$1&option=$2&params=$3&%{QUERY_STRING} [L]
    pas OK

    Malheureusement j'ai besoin de cette seconde règle pour faire fonctionner mon MVC


    Pour le moment j'ai trouvé une rustine pour que le site fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #Exceptions
    RewriteRule ^blocks/(.+)$				myMorph/cms/blocks/$1 [L]
    RewriteRule ^composants/(.+)$				myMorph/cms/composants/$1 [L]
    RewriteRule ^modules/(.+)$				myMorph/framework/modules/$1 [L,NS]
    RewriteRule ^themes/(.+)$				myMorph/themes/$1 [L]
    RewriteRule ^multimedia/(.+)$				myMorph/cms/multimedia/$1 [L]
    RewriteRule ^function/javascript/(.+)$			myMorph/framework/function/javascript/$1 [L]
     
     
    #MVC (sauf myMorph/*)
    RewriteCond %{REQUEST_URI} !^/myMorph [NC]
    RewriteRule ^([0-9A-Za-z]+)/([0-9A-Za-z]+)/(.*)/?$	index.php?com=$1&option=$2&params=$3&%{QUERY_STRING} [L,NS]
    Mais bon, c'est vraiment pas clean comme solution,
    Si vous aviez une solution plus propre, je suis preneur

Discussions similaires

  1. RewriteRule qui ne fonctionne pas sans le flag R
    Par Florian Goo dans le forum Apache
    Réponses: 16
    Dernier message: 26/11/2009, 14h23
  2. Erreur unexpected end of file
    Par snoop dans le forum Linux
    Réponses: 6
    Dernier message: 22/03/2004, 10h37
  3. questions sur le if then end if;
    Par ghostlord79 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/02/2004, 16h35
  4. Front End graphique pour GDB sous windows
    Par KORTA dans le forum GDB
    Réponses: 8
    Dernier message: 20/08/2003, 09h52
  5. Flags ??
    Par foussa dans le forum Assembleur
    Réponses: 21
    Dernier message: 19/10/2002, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo