Si j’utilise mod_rewrite pour contrôler toutes mes redirections 301, cela se produit-il avant que ma page ne soit diffusée? donc si j’ai aussi un tas de règles de redirection dans un script PHP qui fonctionne sur ma page, le .htaccess sera-t-il le premier?
Lorsqu’une demande est adressée à l’URI affecté par le fichier .htaccess, Apache gérera toutes les règles de réécriture avant l’exécution de votre code PHP.
Le .htaccess va commencer en premier. Si vous regardez le cycle de demande Apache:
Cycle de demande Apache http://img.zgserver.com/php/requestcycle.gif
PHP est un gestionnaire de réponse. mod_rewrite s’exécute à la traduction d’URI, à l’exception des règles de réécriture dans les blocs .htaccess et
En réponse à la question de gabriel1836 à propos de l’image, je l’ai saisie à partir de la deuxième diapositive de cette présentation, mais elle provient du livre: Écrire des modules Apache en Perl et C que je recommande fortement.
Oui, le fichier .htaccess est analysé avant que votre script ne soit diffusé.
.htaccess arrive en premier.
htaccess est contrôlé par le serveur Web. Ce fichier sera pris en compte avant votre fichier PHP.
Par exemple, vous pouvez restreindre l’access à un dossier particulier avec votre fichier htaccess. Donc, il doit être pris en charge avant votre PHP.
J’espère que cela t’aides.
Le fichier .htaccess est exécuté par Apache avant l’exécution du script php. (imaginez si le script php est exécuté puis le fichier .htaccess fait une redirection vers une autre page …).
Vous pouvez toujours tester ceci avec la commande suivante:
wget -S --spider http://yourdomain.com
Avec cette commande, vous voyez qui répond à votre demande.
Comme tous les autres ont mentionné, .htaccess est le premier.
Donc, en gros, le .htaccess
nécessite plus ou moins le ou les fichiers PHP appropriés, car selon les règles spécifiées dans le fichier .htaccess
, le terme ” .htaccess
est exécuté en premier.