Bon, j’ai un serveur Apache localhost opérationnel avec PHP et MySql. Maintenant, je veux pouvoir utiliser un fichier .htaccess
pour utiliser RewriteRule
, mais je ne sais pas où le placer.
J’ai ces répertoires:
C:\dev\progs
où Apache PHP et MySQL sont stockés, chacun dans leurs propres sous-répertoires, c.-à-d. C:\dev\progs\Apache
et ainsi de suite …
C:\dev\www
où tous les fichiers du site sont stockés.
J’ai besoin de savoir où mettre le fichier .htaccess
, quelle configuration je dois faire et si ce que je suis mes espoirs et mes rêves ne vaut rien.
Merci
.htaccess est un fichier de configuration qui doit être stocké où se trouve votre page. En bref, il devrait être dans c:\dev\www
dans votre cas, mais vous devriez lire ceci aussi. BTW n’oubliez pas d’activer mod_rewrite en supprimant un hachage de la ligne où il réside
LoadModule rewrite_module modules/mod_rewrite.so
et activer .htaccess en changeant
AllowOverride None
à
AllowOverride All
Activer .htaccess sur les serveurs Apache dans localhost
1) Find your apache directly which uses the php installation . 2) Open your httpd.conf with notepad, Which is located in the path \apache\conf directory 3) Find the code like below #LoadModule rewrite_module modules/mod_rewrite.so 4) Remove # from above code # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride All <--- make sure this is not set to "None" 5) Save httpd.conf file 6) Restart your apache server
Vous placez le fichier .htaccess
dans le répertoire Web que vous souhaitez que le code contrôle (et tout sous-répertoire). Pour une réécriture, il va généralement dans le répertoire racine et agit sur la page index.php.
Par exemple, si vous placez le fichier .htaccess
dans le répertoire \ dev \ www \ et que votre fichier .htaccess
a quelque chose comme RewriteRule ^(.*)$ /index.php?/$1 [L]
c’est une regex qui dit obtenir tous les caractères dans l’URL et les append au /index.php?
scénario. Le /$1
est une référence arrière en regex.
Essaye ça.
RewriteEngine On RewriteBase /projectfolder/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /projectfolder/index.php [L]