138 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.

6voto

Filipe Points 23

Vérifiez d'abord si le module est installé

apachectl -M

S'il n'apparaît pas dans la liste, vous devez l'activer :

a2enmod rewrite

Redémarrez votre serveur et testez-le

systemctl restart apache2

5voto

Miqdad Ali Points 2517

Vous pouvez utiliser la fonction php

      apache_get_modules

et vérifiez la présence de mod_rewrite

<pre>
<?php
print_r(apache_get_modules());
?>
</pre>

http://in2.php.net/apache_get_modules

5voto

Si vous êtes sous linux, vous pouvez vérifier tous les modules activés pour apache2 (dans mon cas) dans le dossier suivant:/etc/apache2/mods-available

cd /etc/apache2/mods-available

à taper : ll -a
si vous voulez vérifier les modules disponibles pour php (dans ce cas php 7 ) dossier /etc/php/7.0/mods-available

cd /etc/php/7.0/mods-available

à taper : ll -a

5voto

Je sais que cette question est ancienne, mais si vous pouviez modifier votre fichier de configuration Apache de la manière suivante AllowOverride All de AllowOverride None

<Directory "${SRVROOT}/htdocs">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

4voto

Hassan Saeed Points 1213

Créez une nouvelle page et ajoutez ce code

 <?php
 if(!function_exists('apache_get_modules') ){ phpinfo(); exit; }
 $res = 'Module Unavailable';
 if(in_array('mod_rewrite',apache_get_modules())) 
 $res = 'Module Available';
?>
<html>
<head>
<title>A mod_rewrite availability check !</title></head>
<body>
<p><?php echo apache_get_version(),"</p><p>mod_rewrite $res"; ?></p>
</body>
</html>

Si ce n'est pas le cas, vous pouvez demander à votre hébergeur ou si vous voulez l'activer sur votre machine locale, consultez ce tutoriel youtube étape par étape concernant 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 vérifier l'option du module de réécriture.

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