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 :

URL rewriting sous xampp


Sujet :

Apache

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    en reconversion
    Inscrit en
    avril 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : en reconversion
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2018
    Messages : 50
    Points : 28
    Points
    28
    Par défaut URL rewriting sous xampp
    Bonjour à tous

    J'ai un problème avec la réécriture d'URL.
    A l'origine je faisais un tuto sur le MVC sur un vieux pc windows avec php 5.6 et Wampserver
    Tout fonctionnait.
    J'ai décidé de le tester sur un pc plus récent fonctionnant sur linux et xampp + php7.
    Et là ! gros souci ! Comme dirait une certaine Céline D : "ça marche plus s' t' engin là" rien ne fonctionne.
    J'ai toujours une erreur 404 à l'écran.Je me suis dit que c'était le module mod_rewrite qui n'était pas activé et j'ai cherché le fichier htppd.conf dans le système.Mais n'étant pas encore trop familier avec linux j'ai fait une recherche et j'ai trouvé 3 fichiers .
    Un dans /opt/lampp/apache2.conf
    un autre dans /opt/lampp/etc
    un dernier dans /opt/lampp/etc/original

    Je ne sais pas trop lequel modifier. j'ai fait des recherches sur le net, essayé les solutions proposées mais rien ne marche.En principe (d'après mes recherches) le module est activé par défaut dans xampp contrairement à une installation du paquet Apache pour lequel il faut l'activer en ligne de commande (de mémoire a2enmode mod_rewrite).

    Voici ce que j'ai trouvé dans deux des fichiers.
    Dans le premier fichier, j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Alias /bitnami/ "/opt/lampp/apache2/htdocs/"
    Alias /bitnami "/opt/lampp/apache2/htdocs"
     
    <Directory "/opt/lampp/apache2/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    dans le second j'ai bien: LoadModule rewrite_module modules/mod_rewrite.so décommenté.

    Je n'ai pas touché au troisième par sécurité (je ne sais pas à quoi il sert, une sauvegarde peut être ?).

    J'ai donc décidé de partir sur un exemple simple pour tester l'URL Rewriting.
    Dans mon dossier opt/lampp/htdocs/www/, j'ai créé un dossier urlRewrite avec dedans, un fichier test.html et un htaccess.

    Mon htaccess contient la règle suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Options +FollowSymlinks
    RewriteEngine On
    RewriteRule ^foo.html$ test.html[L]
    Mais quand je tape dans l'URL http://localhost/www/urlRewrite/foo.html

    J'ai une page affichant: objet non trouvé! erreur 404

    Est ce que j'ai oublié quelque chose ? car là, je ne sais plus où chercher.

    Merci pour votre aide

  2. #2
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    mars 2002
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2002
    Messages : 636
    Points : 1 432
    Points
    1 432
    Billets dans le blog
    1
    Par défaut
    Bonjoue
    Pour ajouter ce module et redémarrer apache
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo service apache2 restart

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    en reconversion
    Inscrit en
    avril 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : en reconversion
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2018
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Merci pour cette réponse , Michel

    mais j'ai testé cette méthode et le terminal indique "command: a2enmode not found".
    Je pense que c'est dû à l’installation de xampp qui est différente de celle d'apache toute seule.
    Comme je l'ai écrit plus haut le module doit être activer par défaut (après je peux me trompé) lors de l'installation de xampp. Je ne vois pas ce qui cloche ? sous windows j'ai sélectionné le module et ça a fonctionné mais sous linux ça m'échappe. Je continue mes recherches.

  4. #4
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    mars 2002
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2002
    Messages : 636
    Points : 1 432
    Points
    1 432
    Billets dans le blog
    1
    Par défaut
    dans le répertoire apache2, il y a deux répertoires utiles
    mods-available et mods-enabled
    Le premier contient tous les modules et normalement, le module rewrite.load
    Le deuxièmecontient les alias vers les modules utilisés par apache et donc il suffit d'y ajouter un aliasvers ../mods-available/rewrite.load
    C'est ce que fait automatiquement a2enmod

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    en reconversion
    Inscrit en
    avril 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : en reconversion
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2018
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Désolé, mais je n'ai pas les deux répertoires que vous citez.
    j'ai fait une recherche des répertoires sur le système et j'ai un répertoire mods-available mais dans le dossier etc/PHP/7.0/ . Je ne pense pas que ce soit ça, car il n'y a que des fichiers avec l'extension ini.
    Mais rien dans apache2. Dans apache2 j'ai 3 dossiers scripts, htdocs et conf.

  6. #6
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    mars 2002
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2002
    Messages : 636
    Points : 1 432
    Points
    1 432
    Billets dans le blog
    1
    Par défaut
    Après une petite recherche, il semblerait que la ligne à modifier soit dans httpd.conf
    il faut dé-commenter la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #LoadModule rewrite_module modules/mod_rewrite.so
    qui devient donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LoadModule rewrite_module modules/mod_rewrite.so
    et remplacer toutes les occurences de
    par et redémarrer apache

    voir :https://specialties.bayt.com/en/spec...der-ubuntu-os/

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    en reconversion
    Inscrit en
    avril 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : en reconversion
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2018
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    La ligne est bien dé-commentée dans le fichier.
    j'ajoute que le module doit être activé puisque php info m'indique que le module fait partie des modules chargés dans apache2handler.
    Je n'ai pas encore modifier le fichier httpd.conf car je ne sais pas lequel modifier j'en ai deux identiques (voir premier post). Lequel prendre celui dans /opt/lampp/etc ou dans dans /opt/lampp/etc/original ?

  8. #8
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    mars 2002
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2002
    Messages : 636
    Points : 1 432
    Points
    1 432
    Billets dans le blog
    1
    Par défaut
    A ce que je vois , c'est /opt/lampp/etc l'autre étant à priori celui qui a servi à créer le fichier utile

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    en reconversion
    Inscrit en
    avril 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : en reconversion
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2018
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Bonjour

    Et bien , j'ai fait les modifs dans le fichier httpd.conf situé dans /opt/lampp/etc .
    j'ai modifié 2 occurences

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Directory />
        AllowOverride All
        Require all denied
    </Directory>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Directory "/opt/lampp/cgi-bin">
        AllowOverride All
        Options None
        Require all granted
    </Directory>
    Résultat toujours erreur 404.
    C'est dingue !
    Est ce que la directive ci-dessous du fichier httpd.conf dans /opt/lampp/apache2/conf/ est correcte ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Alias /bitnami/ "/opt/lampp/apache2/htdocs/"
    Alias /bitnami "/opt/lampp/apache2/htdocs"
     
    <Directory "/opt/lampp/apache2/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    car le chemin /opt/lampp/apache2/htdocs ne contient qu'un fichier image de type png, alors que le htdocs dans lequel je mets mes fichiers html se situe ici /opt/lampp/htdocs/www . Et là, je ne vois pas à quoi elle sert ? après ça n'a peut être rien à voir.

  10. #10
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    mars 2002
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2002
    Messages : 636
    Points : 1 432
    Points
    1 432
    Billets dans le blog
    1
    Par défaut
    Petite remarque qui n'engage que moi : Linux possède tout ce qu'il faut pour créer un serveur et Xampp m'a toujours semblé inutile.
    Ceci étant , vu les particularités de Xampp, on peut toujours voir ici:
    https://doc.ubuntu-fr.org/xampp pour trouver quelques informations
    On y parle entre autre de
    Une autre petite contrainte pouvant arriver est le fait que la sécurité de XAMPP empêche d'accéder au serveur XAMPP depuis l'extérieur (il autorise seulement un accès en local donc). Pour remédier à cela, il suffit d'aller chercher le dernier paragraphe :
    #New XAMPP security concept
    <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webaliser|server-status|server-info))">
    Require local
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    </LocationMatch> Puis de commenter les 4 lignes de <LocationMatch> à </LocationMatch> pour faire en sorte que la sécurité de XAMPP ne prenne pas en compte cette partie du code. Il est toutefois à noter que cette partie doit être conserver dans le cas d'une maintenance, afin de continuer à faire tourner en local le serveur sans pour autant aller tripoter le parefeu de Linux : iptables.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    en reconversion
    Inscrit en
    avril 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : en reconversion
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2018
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Merci pour le lien dont j'ai lu le contenu .
    Mais je n'ai pas trouvé la partie à modifier dans le fichier mentionné. Elle n'existe pas.
    Je pense que ma version de xampp est un peu trop ancienne. Et je ne suis pas un expert sous linux.
    A moins de désinstaller xampp et d'installer les paquets séparés apache2 Mysql et PHP mais je ne sais pas si ça passerait avec un pc 32 bits.
    Bon je pense laisser tomber. Une autre fois peut être.
    merci encore pour votre aide

  12. #12
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    mars 2002
    Messages
    636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2002
    Messages : 636
    Points : 1 432
    Points
    1 432
    Billets dans le blog
    1
    Par défaut
    L'installation du serveur de base est assez simple et il existe de nombreux tuto pour cela.
    Un petit truc que j'utilise souvent est d'installer mysql, apache et ensuite phpmyadmin qui installe automatiquement un tas de paquets supplémentaire.
    La configuration d'apache est réparties dans plusieurs fichiers qui séparent bien les différentes possibilités et évitent de fouiller dans un gros fichier monolithique.
    Accessoirement, on apprend à utiliser une configuration qui est plus proche d'un vrai serveur.
    J'ai utilisé apache sur un processeur Atom avec 2 G de ram et cela fonctionne avec nexcloud pour partager mes fichiers sur plusieurs machines et tablettes de mon réseau local.(je reconnais que ce n'est pas rapide mais ...)
    On peut donc raisonnablement faire ses armes avec un vieil ordi (ici en Eeepc avec Debian)
    Bonne continuation

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    en reconversion
    Inscrit en
    avril 2018
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : en reconversion
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2018
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Bonjour

    Merci pour vos infos Michel. Je vais voir ça avec attention.
    Sauf qu'il y a du nouveau. En effet ça fonctionne maintenant. En fait dans la règle il manquait un espace avant le drapeau !
    Trois jours de perdus pour un P!*#@n d'espace !
    Le côté positif du truc c'est qu' à force de regarder les tutos sur le net, on apprend plein de choses. Encore heureux !

    Je me suis aperçu que les expressions régulières n'étaient pas écrites de la même manière selon certains sites.
    j'ai fait des tests et ces quatre modèles fonctionnent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    RewriteRule ^foo.html$ test.html [L]       #celui d'origine
     
    RewriteRule ^foo\.html$ test.html [L]
     
    RewriteRule "^foo.html$" "test.html" [L]
     
    RewriteRule "^foo\.html$" "test.html" [L]
    Laquelle est la plus adaptée pour une bonne pratique ?.
    La dernière est plus dans les exemples présentés sur le site d'Apache.
    d'après mes quelques connaissances sur les expressions régulières il faut échapper le point et mettre des délimiteurs du moins en programmation php . Je ne sais pas si c'est pareil pour la réécriture d' URL .Donc est ce que les guillemets font office de délimiteurs ou bien sont ils là simplement pour signaler une chaîne de caractères ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2007, 17h13
  2. Problèmes URL Rewriting
    Par mystar dans le forum Apache
    Réponses: 1
    Dernier message: 13/11/2007, 11h06
  3. [URL Rewriting] Problème URL Rewriting -> CSS
    Par Cartman.inc dans le forum Apache
    Réponses: 8
    Dernier message: 23/04/2007, 14h29
  4. [EasyPHP] URL Rewriting sous EasyPHP 1.8
    Par Saiyan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 30/12/2006, 13h35
  5. Problème URL rewriting
    Par Zan dans le forum Apache
    Réponses: 4
    Dernier message: 24/11/2006, 19h04

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