web-dev-qa-db-fra.com

Comment activez-vous mod_rewrite sur n'importe quel système d'exploitation?

Si je comprends bien, j'ai besoin de mettre quelque chose dans httpd.config pour activer mod_rewrite. Si cela est vrai, que dois-je mettre dans httpd.conf ou Apache.conf? S'il vous plaît être spécifique à l'OS.

42
John

Non, mod_rewrite est un module Apache et n'a rien à voir avec PHP.

Pour activer le module, la ligne suivante dans httpd.conf doit être active:

LoadModule rewrite_module modules/mod_rewrite.so

pour savoir s'il est déjà actif, essayez de placer un fichier .htaccess dans un répertoire Web contenant la ligne.

RewriteEngine on

si cela fonctionne sans générer une erreur de serveur interne 500 et que le fichier .htaccess soit analysé, la réécriture d'URL fonctionne.

62
Pekka 웃

Juste pour les utilisateurs activant mod_rewrite sur Debian avec Apache2: 

Pour vérifier si mod_rewrite est activé:  

Cherchez dans mods_enabled un lien vers le module en exécutant 

ls /etc/Apache2/mods-enabled | grep rewrite

Si cela génère rewrite.load, le module est activé. (Remarque: votre chemin vers Apache2 peut ne pas être/etc /, bien que ce soit probablement le cas.)

Pour activer mod_rewrite si ce n'est déjà fait :

Activer le module (crée essentiellement le lien que nous recherchions ci-dessus):

a2enmod rewrite

Rechargez tous les fichiers de configuration Apache:

service Apache2 restart
57
FarmerGedden

Dans mon cas, le problème est survenu même après que toutes ces configurations ont été effectuées (@Pekka a mentionné des modifications dans les fichiers httpd.conf et .htaccess). Il n'a été résolu qu'après avoir ajouté 

<Directory "project/path">
  Order allow,deny
  Allow from all
  AllowOverride All
</Directory>

à la configuration de l'hôte virtuel dans un fichier vhost

Édité le 29/09/2017 (Pour Apache 2.4 <) Référez-vous cette réponse

<VirtualHost dropbox.local:80>
DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
ServerName dropbox.local
ErrorLog "logs/dropbox.local-error.log"
CustomLog "logs/dropbox.local-access.log" combined
<Directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
    # AllowOverride All      # Deprecated
    # Order Allow,Deny       # Deprecated
    # Allow from all         # Deprecated

    # --New way of doing it
    Require all granted    
</Directory>

10
Sadee

Non, vous ne devriez pas avoir besoin de. mod_rewrite est un module Apache. Cela n'a rien à voir avec php.ini.

1
Jason Lewis

s'il s'agit d'un site d'hébergement, demandez à votre hébergeur ou si vous souhaitez l'activer sur une machine locale, puis consultez ce didacticiel étape par étape sur youtube relatif à l'activation du module de réécriture dans wamp Apache https://youtu.be/ xIspOX9FuVU? t = 1m43s
Icône du serveur Wamp -> Apache -> Modules Apache et cochez l’option de réécriture du moduleit doit être coché, mais après cela, wamp nécessite le redémarrage de tous les services. 

0
Hassan Saeed

Le module rewrite_module est intégré au serveur dans la plupart des cas

Utilisez .htaccess

Utilisez le générateur de réécriture de mod sur http://www.generateit.net/mod-rewrite/

0
Marco Schaffner

network solutions offre le conseil de mettre un php.ini dans le cgi-bin pour permettre à mod_rewrite

0
jeremy woods