Problème pretty url avec apache sans .htaccess [Résolu]

Home Forums Systèmes / Outils Apache Problème pretty url avec apache sans .htaccess [Résolu]

  • Ce sujet contient 1 réponse, 2 participants et a été mis à jour pour la dernière fois par Patoche, le il y a 6 années et 10 mois.
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #36
    Julien
    Maître des clés

    Salut,

    j’essaye de faire marcher pretty url sans le fichier .htaccess. J’ai configuré mon virtualhost dans apache httpd.conf en mettant la même config que dans le .htaccess qui est dans le dossier doc de csms. Mais j’ai des erreur 404  –(. Si je mets le .htaccess ça marche ! Je précise que je change ma config apache avec AllowOverride All quand je mets le fichier .htaccess.
    voici ma config dans le virtualhost

    <VirtualHost *:80>
            ServerAdmin name@domain.com
            ServerName www.mywebsite.com
            DocumentRoot "/my/path"
            DirectoryIndex index.htm index.php index.html
            <Directory "/my/path">
                    AllowOverride None
                    Allow from all
                    Options +Indexes FollowSymLinks
            </Directory>
    
            RewriteEngine on
            #-- Rules -------------------
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.+).html$ index.php?page=$1 [QSA]
    </VirtualHost>

    Si quelqu’un à une idée ?

    #67
    Patoche
    Invité

    Il y a une petite différence lorsque tu mets les règles de rewriting dans le fichier de configuration d’apache au lieu du .htaccess.

    2 cas de figure :
    1/ Tes règles sont dans <directory> il faut ajouter la directive RewriteBase

    <Directory "/my/path">
      AllowOverride None
      Allow from all
      Options +Indexes FollowSymLinks
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.+).html$ index.php?page=$1 [QSA]
    </Directory>

    2/ Tes règles sont en dehors, dans ce cas il ne faut pas de RewriteBase mais ajouter un / dans la règle

    <Directory "/my/path">
      AllowOverride None
      Allow from all
      Options +Indexes FollowSymLinks
    </Directory>
     RewriteEngine on
     #-- Rules -------------------
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^/(.+).html$ /index.php?page=$1 [QSA]

    Voilà qui devrait solutionner ton problème.

     

    lorsqu’on peut configurer les règles de rewriting dans apache au lieu d’utiliser un fichier .htaccess, ne pas oublier de mettre la directive AllowOverride None on gagne en performance, car apache ne va plus chercher la présence et l’analyse d’un fichier .htaccess à chaque requête cool 🙂

2 sujets de 1 à 2 (sur un total de 2)
  • Le sujet ‘Problème pretty url avec apache sans .htaccess [Résolu]’ est fermé à de nouvelles réponses.