Actuellement, j'utilise l'hébergement avec un serveur Lightspeed . L'hébergement dit mod_rewrite
est activé mais je ne peux pas faire fonctionner mon script là-bas. Chaque fois que j'essaye d'accéder à l'URL, elle renvoie 404 - page non trouvée .
J'ai mis les mêmes codes sur un autre serveur qui fonctionne avec Apache. Ça marche là-bas. Donc je suppose, c'est la .htaccess
et mod_rewrite
question.
Mais le support d'hébergement insiste toujours avec moi sur le fait que leur mod_rewrite est activé, donc j'aimerais savoir comment puis-je vérifier s'il est réellement activé ou non.
J'ai essayé de vérifier avec phpinfo()
, mais pas de chance, je ne trouve pas mod_rewrite
là-bas, est-ce parce qu'ils utilisent lightspeed
?
Existe-t-il un moyen de vérifier? Sil te plait aide moi. Je vous remercie.
FYI: mon .htaccess
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 essayé comme ça aussi
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 même résultat.
la source
Pour vérifier si le module mod_rewrite est activé, créez un nouveau fichier php dans votre dossier racine de votre serveur WAMP. Entrez ce qui suit
phpinfo();
Accédez à votre fichier créé à partir de votre navigateur.
CtrlFpour ouvrir une recherche. Recherchez «mod_rewrite». S'il est activé, vous le voyez comme «Modules chargés»
Sinon, ouvrez httpd.conf (fichier Apache Config) et recherchez la ligne suivante.
#LoadModule rewrite_module modules/mod_rewrite.so
Supprimez le signe dièse ('#') au début et enregistrez ce fichier.
Redémarrez votre serveur Apache.
Accédez au même fichier php dans votre navigateur.
Recherchez à nouveau "mod_rewrite". Vous devriez pouvoir le trouver maintenant.
la source
phpinfo()
le champ «Server API» indique «CGI / FastCGI»).phpinfo()
ne listera pas les modules activés. Dans ce cas, consultez Comment vérifier la présence de mod_rewrite sur PHP CGI .Si vous utilisez un fichier de configuration d'hôtes virtuels, assurez-vous que l'hôte virtuel en question a la directive
AllowOverride All
quelque part comme ceci:Fondamentalement, cela stipule de permettre le traitement de toutes les directives .htaccess.
la source
...
dans<Directory ...>
? Que dois-je y mettre? le répertoire où se trouve .htaccess?ServerName
, je n'avais pas changé le nom du répertoire, après cela et un redémarrage d'Apache c'était ok.Si apache_get_modules () n'est pas reconnu ou aucune information sur ce module dans phpinfo (); essayez de tester la réécriture de mod en ajoutant ces lignes dans votre fichier .htaccess:
Et mod_rewrite.php:
la source
console:
la source
Si
retourne
true
alors mod-rewrite est activé.la source
La
apache_get_modules()
fonction définie par PHP renvoie une liste de modules activés. Pour vérifier simod_rewrite
est activé, vous pouvez exécuter le script suivant sur votre serveur:Si l'exemple ci-dessus échoue, vous pouvez vérifier la réécriture de mod en utilisant votre
.htaccess
fichier.Créez un
htaccess
fichier à la racine du document et ajoutez la règle de réécriture suivante:Maintenant, visitez http://example.com/HelloWorld , vous serez redirigé en interne vers la page /index.php de votre site. Sinon, si mod-rewrite est désactivé, vous obtiendrez une erreur de serveur 500 Internel.
J'espère que cela t'aides.
la source
.htaccess
?vous pouvez le faire sur le terminal, soit:
tiré de 2daygeek
la source
sudo
Cela fonctionne sur CentOS:
Devrait sortir
rewrite_module (shared)
la source
Si ce code est dans votre fichier .htaccess (sans la vérification de mod_rewrite.c)
et vous pouvez visiter n'importe quelle page de votre site avec une erreur de serveur 500. Je pense qu'il est prudent de dire que la réécriture de mod est activée.
la source
Vous pouvez utiliser la fonction php
et vérifiez mod_rewrite
http://in2.php.net/apache_get_modules
la source
Si vous êtes dans le système Linux, vous pouvez cocher tous les modules d'activation pour apache2 (dans mon cas) dans le dossier suivant: / etc / apache2 / mods-available
pour taper:
ll -a
si vous voulez vérifier les modules disponibles pour le dossier php (dans ce cas php 7) /etc/php/7.0/mods-available
pour taper:
ll -a
la source
créez simplement une nouvelle page et ajoutez ce code
et exécutez cette page, puis trouvez que le module est disponible ou non sinon vous pouvez demander à votre hébergement ou si vous souhaitez l'activer sur une machine locale, puis vérifiez ce tutoriel youtube étape par étape lié à 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 du module de réécriture
la source
Je sais que cette question est ancienne mais si vous pouvez modifier votre fichier de configuration Apache à
AllowOverride All
partir deAllowOverride None
la source
Il vous suffit de vérifier si le fichier est là, en tapant
cat /etc/apache2/mods-available/rewrite.load
La ligne de résultat ne peut pas être commentée en commençant par
#
la source
Ce code a fonctionné pour moi:
la source
J'avais le problème exact, je l'ai résolu en cliquant sur la structure personnalisée, puis en ajoutant
/index.php/%postname%/
et cela fonctionneJ'espère que cela épargnera à quelqu'un le stress que j'ai traversé pour trouver ce qui n'allait pas.
la source