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 :

<Location> et url rewriting


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut <Location> et url rewriting
    Bonjour,
    J'ai un problème technique épineux pour lequel je ne trouve pas de solution.
    Je réalise (dans une application zend_framework) un url_rewriting où tous les fichiers inexistants sont renvoyés vers index.php. La config est dans le virtualhost, dans des balises <Location> (voir plus bas).
    Mais je veux aussi affecter des php_value à certaines url.
    Or, ces configs ne sont pas prises en compte, car il semble que l'url testée dans <Location> soit celle réécrite (/index.php) et non pas la requête initiale (/pr/media/)
    Voici mon virtualhost :
    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
    	<Location /pr/media/>
    		php_value post_max_size "300M"
    		php_value upload_max_filesize "210M"
    		php_value max_input_time 1800
    		php_value max_execution_time 1800
    		php_value memory_limit -1
    	</Location>
     
    	<Location />
            RewriteEngine on
            RewriteCond %{REQUEST_FILENAME} -s [OR]
            RewriteCond %{REQUEST_FILENAME} -l [OR]
            RewriteCond %{REQUEST_FILENAME} -d
            RewriteRule ^.*$ - [NC,L]
            RewriteRule ^.*$ index.php [NC,L]
    	</Location>
    Quand je crée un fichier /pr/media/test.php, la config est bonne (le fichier existant, le rewriting n'a pas lieu).
    Sinon, sur une requête rewritée (par exemple /pr/media/add qui est renvoyée vers /index.php), la config est fausse.
    Enfin, pour une config <Location /index.php>, la requête /index.php a une bonne config.

    Une idée ?

  2. #2
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Ton location avec redirection est-il bien déclaré après tous les autres ?
    L'ordre est important.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par Marc3001 Voir le message
    Ton location avec redirection est-il bien déclaré après tous les autres ?
    L'ordre est important.
    Oui. Il n'y a que deux location, ils sont tous les deux dans le virtualhost et dans cet ordre.
    Je sèche !

  4. #4
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    J'ai trouvé ça dans les commentaires de la page du mod_rewrite
    Bien que les règles de réécriture soient permises du point de vue de la syntaxe dans les sections <Location> et <Files>, elles n'y sont pas prises en compte, et n'y sont à priori d'aucune utilité.
    En fait, c'est parceque ta rêgle de réécriture modifie le contexte de la page affichée.
    Tu as beau avoir tenté d'afficher /pr/media/toto, tu vas afficher index.php. Seules les rêgles qui s'appliquent à index.php seront appliquées.

    Ce que je ne comprends pas c'est pourquoi tu veux que ces variables soient valorisées alors que tu affiches la page d'accueil ? Pourquoi ne pas généraliser ces variables à la page d'accueil également dans ce cas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <Location />
       php_value post_max_size "300M"
       php_value upload_max_filesize "210M"
       php_value max_input_time 1800
       php_value max_execution_time 1800
       php_value memory_limit -1
    </Location>
     
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par Marc3001 Voir le message
    Ce que je ne comprends pas c'est pourquoi tu veux que ces variables soient valorisées alors que tu affiches la page d'accueil ? Pourquoi ne pas généraliser ces variables à la page d'accueil également dans ce cas ?
    C'est parce que cette config est exceptionnelle (pas de memory_limit, un time_limit de 30 min...), de quoi me planter le serveur. C'est pourquoi je veux la réserver aux seules actions qui uplodent des fichiers.

    Pour mon problème, je suis en train de plancher sur <If> + expression régulière (dispo depuis Apache 2.4). Là, je bloque sur mon expression, mais je vais bien y arriver ;o)

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Je progresse... ou pas, c'est selon !
    Je viens de passer à Apache 2.4 pour utiliser les <If>.
    Et là, même problème !
    Voici l'extrait de mon virtualhost :
    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
    <If "%{REQUEST_URI} == '/index.php'">
    	php_value post_max_size "300M"
    	php_value upload_max_filesize "210M"
    	php_value max_input_time 1800
    	php_value max_execution_time 1800
    	php_value memory_limit -1
    </If>
    <Location />
            RewriteEngine on
            RewriteCond %{REQUEST_FILENAME} -s [OR]
            RewriteCond %{REQUEST_FILENAME} -l [OR]
            RewriteCond %{REQUEST_FILENAME} -d
            RewriteRule ^.*$ - [NC,L]
            RewriteRule ^.*$ index.php [NC,L]
    </Location>
    Si je demande /pr/media/add, le <If> fonctionne (donc REQUEST_URI == '/index.php') alors qu'un echo $_SERVER['REQUEST_URI'] dans index.php affiche '/pr/media/add'.
    Je n'y comprend rien...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 17h13
  2. url rewriting
    Par olive.m dans le forum Apache
    Réponses: 3
    Dernier message: 17/06/2005, 02h01
  3. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 20h18
  4. Activer l'url rewriting
    Par Otaugames dans le forum Apache
    Réponses: 2
    Dernier message: 09/03/2005, 14h58
  5. Url Rewriting / htaccess
    Par bisi dans le forum Apache
    Réponses: 4
    Dernier message: 25/07/2004, 22h12

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