Qu’est-ce qui se passe en premier? .htaccess ou code php?

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 ou qui s’exécutent dans la phase de correction. En effet, Apache ne sait pas dans quel répertoire il se trouve (et donc quel ou .htaccess à lire) avant la traduction de l’URI.

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.