Ceci est un problème très étrange, et j'espère juste que je peux l'expliquer clairement.htaccess réécriture ne fonctionne pas pour toutes les règles
En fait, nous avons fait une mise à jour majeure sur un site client aujourd'hui et nécessaire pour mettre à jour des règles de réécriture dans le htaccess pour accueillir la nouvelle structure, etc ...
Alors, où nous avions à l'origine des choses comme:
RewriteRule ^/resources/?$ index.php?id=resources
RewriteRule ^/media/?$ media.php
nous avons changé à:
RewriteRule ^/resources/?$ index.php?id=resources
RewriteRule ^/media/?$ index.php?id=media
Mais quand nous avons visité http://www.example.com/media - il déployait l'ancienne page des médias. Ensuite, lorsque nous avons supprimé l'ancien media.php de la racine du document, nous avons obtenu 404s. Quelque part quelque part est toujours mapping/media à media.php - et ignore la règle de réécriture. La chose étrange est - toutes les autres règles de réécriture dans le fichier fonctionnent bien - et il y en a environ 20 là-dedans.
Nous avons suivi les fichiers vhost et autres fichiers de configuration, mais nous ne trouvons aucune référence aux médias ou aux autres redirections cassées (trois au total) - nous sommes donc perplexes.
Avez-vous redémarré le serveur Web? – Gumbo
oui, nous l'avons fait - bien que cela ne devrait normalement pas affecter le niveau de répertoire htaccess (et pas) – HorusKol
Mais lors de l'utilisation de mod_rewrite dans un fichier .htaccess, le préfixe de chemin par répertoire est supprimé de l'URI de la requête. être retiré du motif. Les règles données ne devraient donc pas fonctionner du tout dans un fichier .htaccess. – Gumbo