7
votes

RewriteRule dans .htaccess ne fonctionne pas

Je suis actuellement en cours d'exécution Apache2 sur ma machine locale, installée avec la dernière version de Ubuntu.

J'essaie d'obtenir une réécriture d'URL de base en utilisant le fichier .htaccess. p>

Le fichier " http: //localhost/page.php? = Accueil "existe-t-il et l'emplacement" / ne texiste / home "ne fait pas. p>

Je voudrais que la première page soit chargée lorsque la seconde est demandée. p>

mon fichier .htaccess ressemble à ceci: p>

Not Found

The requested URL /doesnotexist/home was not found on this server.


0 commentaires

3 Réponses :


3
votes

Vous devez supprimer le préfixe du chemin contextuel de votre motif lors de l'utilisation de mod_rewrite dans un fichier .htaccess. Dans le cas du répertoire racine, le préfixe du chemin est juste / . Alors essayez ceci: xxx


1 commentaires

Merci pour la réponse rapide, mais désolé, le comportement est inchangé.



27
votes

Pour le bénéfice des autres, j'ai compris la réponse:

dans le fichier "/ etc / apache2 / Sites activé / 000-défaut" Il y avait la ligne: p>

AllowOverride All


3 commentaires

Remarque: cette option de configuration a été déplacée vers /etc/apache2/apache2.conf


J'ai changé cela sous et maintenant c'est 500 erreurs de serveur internes ...


Travaillé pour moi. Sur Mac OS X (2021) Vous pouvez trouver cette option sous dans httpd.conf (qui est en quelque sorte décourageant lorsque Apache Mac OS X est allongé légèrement différemment différemment. à Linux (no activé sur les sites dir)



0
votes

Si je place un .htaccess dans / bibliothèque / serveur Web / documents et ouvrez "localhost /"; Pour le tester, cela fonctionne comme prévu. Cela ne fonctionne tout simplement pas dans "~ / sites". J'ai essayé cela sur Mac OS X Mavericks.


0 commentaires