web-dev-qa-db-fra.com

Utiliser le fichier .htaccess sur un serveur Apache localhost

D'accord, j'ai un serveur Apache localhost opérationnel avec PHP et MySql. Maintenant, je veux aussi pouvoir utiliser un fichier .htaccess et RewriteRule, mais je ne sais pas trop où le mettre.

J'ai ces répertoires:

C:\dev\progs où Apache PHP et MySQL sont stockés, chacun dans son propre sous-répertoire, c'est-à-dire. 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ù placer le fichier .htaccess, quelle configuration je dois faire et si mes espoirs et mes rêves ne servent à rien.

Merci

9
KFox

.htaccess est un fichier de configuration qui devrait être stocké à l'emplacement de 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 activez .htaccess en changeant

AllowOverride None

à

AllowOverride All
12
Kitet

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
12
Gaurang P

Vous placez le fichier .htaccess dans le répertoire Web que vous voulez que le code contrôle (et tous les sous-répertoires). 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], il s’agit d’une expression rationnelle qui dit: obtenez tous les caractères de l’URL et ajoutez-les au script /index.php?. Le /$1 est une référence en arrière dans regex.

1
dmayo

Essaye ça.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /projectfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /projectfolder/index.php [L]
</IfModule>
0
Rakhi Prajapati