136 votes

Comment vérifier si le mod_rewrite est activé sur le serveur ?

Actuellement, j'utilise l'hébergement avec vitesse lumière serveur. L'hébergement dit mod_rewrite est activé, mais je n'arrive pas à faire fonctionner mon script. Chaque fois que j'essaie d'accéder à l'URL, il retourne 404 - non trouvé page.

J'ai mis les mêmes codes sur un autre serveur qui fonctionne avec Apache. Cela fonctionne là-bas. Je suppose donc que c'est le .htaccess y mod_rewrite question.

Mais le support d'Hosting insiste toujours sur le fait que leur mod_rewrite est activé, alors j'aimerais savoir comment je peux vérifier s'il est effectivement activé ou non.

J'ai essayé de vérifier auprès de phpinfo() mais pas de chance, je n'arrive pas à trouver mod_rewrite est-ce parce qu'ils utilisent des lightspeed ?

Existe-t-il un moyen de vérifier ? Veuillez m'aider. Je vous remercie.

POUR INFORMATION : mon .htaccess Le code est

Options -Indexes

<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>

J'ai également essayé comme ceci

DirectoryIndex index.php
RewriteEngine on

RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

Mais le résultat est le même.

147voto

Saurabh Points 1240

À partir de la ligne de commande, tapez

sudo a2enmod rewrite

si le mode de réécriture est déjà activé, il vous le dira !

115voto

Fadzly Othman Points 291
  1. Pour vérifier si le module mod_rewrite est activé, créez un nouveau fichier php dans le dossier racine de votre serveur WAMP. Saisissez le texte suivant

    phpinfo();

  2. Accédez à votre fichier créé à partir de votre navigateur.

  3. CtrlF pour lancer une recherche. Cherchez "mod_rewrite". S'il est activé, vous le verrez dans les "Modules chargés

  4. Si ce n'est pas le cas, ouvrez httpd.conf (fichier de configuration d'Apache) et recherchez la ligne suivante.

    #LoadModule rewrite_module modules/mod_rewrite.so

  5. Supprimez le signe dièse ('#') au début et enregistrez ce fichier.

  6. Redémarrez votre serveur Apache.

  7. Accédez au même fichier php dans votre navigateur.

  8. Cherchez à nouveau 'mod_rewrite'. Vous devriez pouvoir le trouver maintenant.

96voto

Jahmic Points 1878

Si vous utilisez un fichier de configuration d'hôtes virtuels, assurez-vous que l'hôte virtuel en question possède la directive AllowOverride All quelque part comme ceci :

<VirtualHost *:80>
        ...
    <Directory "directory/of/your/.htaccess">
        AllowOverride All
    </Directory>
</VirtualHost>

Il s'agit en fait d'autoriser le traitement de toutes les directives .htaccess.

27voto

radtek Points 506

Cela fonctionne sur CentOS :

$ sudo httpd -M |grep rewrite_module

Doit sortir rewrite_module (shared)

19voto

wappy Points 463

Si apache_get_modules() n'est pas reconnu ou s'il n'y a pas d'information sur ce module dans phpinfo() ; essayez de tester mod rewrite en ajoutant ces lignes dans votre fichier .htaccess :

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

Et mod_rewrite.php :

<?php echo "Mod_rewrite is activated!"; ?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X