Domanda

Se uso mod_rewrite per controllare tutti i miei reindirizzamenti 301, ciò accade prima che la mia pagina venga pubblicata? quindi se ho anche un sacco di regole di reindirizzamento in uno script php che viene eseguito sulla mia pagina, verrà avviato per primo il .htaccess?

È stato utile?

Soluzione

Quando viene effettuata una richiesta all'URI interessato dal file .htaccess, Apache gestirà tutte le regole di riscrittura prima dell'esecuzione di qualsiasi codice PHP.

Altri suggerimenti

Il .htaccess si avvierà per primo. Se guardi il ciclo di richiesta di Apache:

Ciclo richieste Apache

PHP è un gestore delle risposte. mod_rewrite viene eseguito alla traduzione URI, ad eccezione delle regole di riscrittura in .htaccess e < Directory > oppure < Posizione > blocchi che vengono eseguiti nella fase di correzione. Questo perché Apache non sa in quale directory si trova (e quindi in quale & Lt; Directory & Gt; o .htaccess da leggere) fino a dopo la traduzione dell'URI.

In risposta alla domanda di gabriel1836 sull'immagine, l'ho presa dalla seconda diapositiva di questa presentazione ma è originariamente tratta dal libro: Scrivere moduli Apache in Perl e C che consiglio vivamente.

Sì, il file .htaccess viene analizzato prima che venga pubblicato lo script.

.htaccess si verifica per primo.

htaccess è controllato dal server web. Questo file verrà preso in considerazione prima del tuo file PHP.

Ad esempio, è possibile limitare l'accesso a una determinata cartella con il file htaccess. Quindi, deve essere preso in carico prima del tuo PHP.

Spero che questo aiuti.

Il .htaccess viene eseguito da Apache prima dell'esecuzione dello script php. (immagina se lo script php viene eseguito e quindi .htaccess effettua un reindirizzamento a un'altra pagina ...).

Puoi sempre testarlo con il seguente comando:

wget -S --spider http://yourdomain.com

Con questo comando vedi chi sta rispondendo alla tua richiesta.

Come tutti gli altri citati, .htaccess è il primo.

Quindi, in sostanza, il .htaccess richiede più o meno il codice PHP oi file pertinenti, come in base alle regole specificate nel <=>, il che significa che <=> viene eseguito per primo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top