L’URL propre ne fonctionne pas, le module mod_rewrite est installé

Je viens d’installer une nouvelle copie de Drupal 6.19 pour accélérer la rédaction des modules. Mais pour une raison quelconque, le module de réécriture ne fonctionne pas pour Drupal.

Ce que j’ai vérifié:

  • $ apachectl -M >> il est installé
  • php_info() sur le serveur actuel >> dit que réécrire est également installé
  • J’ai également vérifié le fichier .htaccess dans mon dossier racine Drupal
  • UPDATE: vérifié httpd.conf pour AllowOverride All

Je propose des options ici. Partout, mais les parameters de Drupal ne me permettent pas d’activer les parameters et leur test est simplement en train de visiter un site qui devrait fonctionner si le module de réécriture était là.

Mes spécifications: Mac OS X 10.6 Snow Leopard Utilisation d’Apache intégré avec PHP5

Merci!

Deux autres choses à vérifier:

  1. Vérifiez que votre fichier .htaccess est lisible pour vos processus Apache (Oui, j’ai lu que vous l’avez vérifié deux fois, mais est-ce que cela incluait les permissions de fichier?)
  2. Activer la journalisation de la réécriture – cela peut vous donner des indications sur les échecs. Commencez avec un niveau de journalisation de 5 et augmentez / diminuez au besoin. (N’oubliez pas de l’éteindre plus tard, car c’est un énorme cochon de performance)

De plus, j’essaierais de simplifier le scénario de test – commencez par une simple directive de réécriture dans une configuration vhost. Une fois que cela fonctionne, déplacez-le vers un fichier .htaccess au niveau supérieur de la racine du document vhosts, puis vers les sous-répertoires (si nécessaire / utilisé).

Enfin, vous devez autoriser votre hôte ou répertoire virtuel à utiliser .htaccess .

 AllowOverride All 

Mettre à jour:

Je ne peux pas comprendre votre problème exact, mais il vaut toujours la peine de tester qu’Apache parsing réellement votre fichier .htaccess . Faites express une erreur de syntaxe et voyez si vous obtenez un message 500 Internal Server Error . De plus, testez mod_rewrite avec une règle de redirection simple qui n’implique pas Drupal.

Assurez-vous que si l’installation se trouve dans un sous-répertoire, le nom d’utilisateur fait partie de rewriteBase

 # Modify the RewriteBase if you are using Drupal in a subdirectory or in a # VirtualDocumentRoot and the rewrite rules are not working properly. # For example if your site is at http://example.com/drupal uncomment and # modify the following line: RewriteBase /~username/drupal** 

Si vous exécutez votre installation Drupal dans un sous-dossier tel que: example.com/drupal, puis activez “RewriteBase /” dans votre fichier .htaccess, cela pourrait vous aider.

Une URL propre pourrait être quelque chose comme http://www.example.com/fisherman au lieu de http://www.example.com/data/pages/fisherman.php

Certaines installations d’apache ont des fonctionnalités d’URL propres et prêtes à l’emploi. Il y a 2 étapes à configurer correctement pour que cela fonctionne.

 Enable rewrite module Allow .htaccess file overrides 

Les deux étapes nécessitent un access root SSH à votre serveur. Donc, si vous êtes sur un hôte partagé, cela ne fonctionnera probablement pas pour vous. Ouvrez votre terminal:

  1. Activer le module de réécriture

Pour activer le module de réécriture, vous pouvez taper la commande suivante

 sudo a2enmod rewrite 

Maintenant tapez

 sudo service apache2 restart 

pour activer les modifications. Vous pouvez vérifier si cela fonctionne en tapant

 sudo apache2ctl –M 

Une liste apparaîtra. Recherchez “rewrite_module”.

http://codeontrack.com/enable-clean-urls-apache/

Recherchez cette ligne dans votre fichier httpd.conf

 #LoadModule rewrite_module modules/mod_rewrite.so 

Si vous commentez, décommentez le serveur apache, puis redémarrez-le, puis essayez d’activer la section URL Clean de Drupal Admin.

J’ai ajouté ce qui suit à mon fichier .htaccess et celui-ci a été résolu. Mon problème était précisément lié à l’image Rackspace / CentOS

Options – MultiViews

Comme Álvaro G. Vicario l’a mentionné, la première chose à faire est de ghfdiddfdjf haut du fichier .htaccess quelque chose comme ghfdiddfdjf qui devrait ghfdiddfdjf une erreur interne. Si ce n’est pas le cas, vous savez que le fichier .htaccess n’est pas en cours de lecture. Le mien n’était pas, et j’ai trouvé le correctif suivant:

Dans le dossier etc/apache2/sites-enabled , il y avait un fichier appelé default-000 . C’est dans ce fichier que j’ai modifié AllowOverride All à 2 endroits du fichier.