mod_rewrite d'apache ne fonctionne pas avec .fichier htaccess
OK, j'ai eu quelques problèmes avec aws ou quelque chose, de telle sorte que je ne peux pas sembler obtenir mod_rewrite de travail.
Juste pour des fins de test, j'ai effectué les opérations suivantes:
1 console aws pour déployer des frais d'ami en 64 bits instance à partir d'assistant
2 yum installé apache
3 modifié le fichier /etc/httpd/conf/httpd.conf:
de sorte que
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ressemble
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
4 fait en sorte que
LoadModule rewrite_module modules/mod_rewrite.so
est dans le fichier et sans commentaire.
5 redémarré apache:
sudo /sbin/service httpd restart
6 créé deux nouveaux fichiers:
/var/www/html/test1.html
contient:
this is test1!
/var/www/html/test2.html
contient:
this is test2!
7 fichier créé:
/var/www/html/.htaccess
contient (AU TOTAL):
RewriteEngine on
RewriteRule ^test1\.html$ test2.html [L]
8 est allé à:
http://[my aws server]/test1.html
Suis "c'est test1!"
Je suis en train de faire quelque chose de mal ici, mais pour la vie de moi, je n'ai aucune idée de ce qu'. Toute aide est grandement appréciée...
EDIT: j'ai ajouté des bêtises caractères/chiffres pour le début de ma .fichier htaccess, et redémarré apache (pas sûr à 100% de ce qui est nécessaire, mais à quoi bon...), et rien ne s'est passé. En d'autres termes, je m'attendais à ce que cela va à l'url [aws serveur]/test1.html seraient le résultat d'un certain genre d'erreur, mais il n'a pas. Je la soupçonne d'apache n'est pas même la lecture de la .fichier htaccess.
EDIT: j'ai ajouté ce qui suit à mon httpd.fichier conf:
RewriteLog "/tmp/rewrite.log"
RewriteLogLevel 9
Le fichier est créé lorsque je redémarre apache, mais rien ne va jamais là quand je vais à la page j'ai mis en place. Je ne suis pas pour faire quelque chose de très, très basique, mais je ne suis pas sûr de ce que...
Juste pour apporter la solution la plus évidente, puisqu'elle est contenue dans mon commentaire ci-dessous: le httpd.fichier conf déjà eu une section de /var/www/html, qui avait "AllowOverride None". Au lieu de changer, j'ai essayé d'ajouter un second, qui a été ignorée. Leçon à retenir: tout d'abord assurez-vous que vous n'êtes pas de la duplication d'un déjà existant de la section! 🙂
OriginalL'auteur snuggles | 2013-07-25
Vous devez vous connecter pour publier un commentaire.
Ne sais pas si cela est la cause de vos problèmes, mais vous ne devriez pas jouer avec les
ligne, et il devrait être quelque chose comme:
Vous devriez ajouter le répertoire de racine de vos documents comme un autre conteneur:
La seule autre chose que je peux penser à est de vérifier votre configuration pour
AccessFileName
, il doit être mis à.htaccess
, mais si c'est autre chose, alors votre.htaccess
fichier sera complètement ignoré. Assurez-vous également.htaccess
fichier est lisible par le processus apache.Vous me diriger dans la bonne direction: le httpd.fichier conf déjà eu une section de /var/www/html, qui avait "AllowOverride None". Je viens de franchement n'a pas pensé à regarder pour un article déjà dans le fichier conf, j'ai supposé que c'est venu avec la valeur par défaut. Jeeeeez. J'ai mis "AllowOverride All" et tout fonctionne. Merci Jon!
Il fonctionne avec /var/www/html
OriginalL'auteur Jon Lin
M'a fallu un certain temps pour trouver cela, mais dans certains installe Apache va utiliser plusieurs fichiers de configuration.
Regarder dans "
/etc/apache2/sites-enabled/000-default
" et vérifier queAllowOveride
est fixé àAll
OriginalL'auteur Alex Rapso
De l'essayer. Ce travail pour moi.
La première, vous devez vous assurer que le .fichier htaccess mettre dans le bon répertoire.
Pour cela, vous pouvez aller sur des sites-enabled dossier et vérifier l' .fichiers de conf sont activés.
Ex: 000-default.conf
Puis, goto sites-available dossier afin de le modifier .fichier conf.
Trouver à la racine de votre serveur et vérifier répertoire de nouveau.
Si vous avez mis .htaccess dans /var/www/html/.htaccess donc cette ligne ressemble à ceci:
La deuxième, Vous avez besoin de modifier
<Directory>
bloc ressembler à ceci.Enfin, vous enregistrez le fichier et redémarrez apache
Espérons que cette aide!
OriginalL'auteur Leo Nguyen