Domanda

Mi chiedo, è possibile rimuovere index.php da un URL? In sostanza su alcune pagine di un sito ho questa struttura,

http://www.domain.com/index.php/members/register , ma altre pagine devo strutture URL come questo, http: //www.domain .com / categoria / prodotti / id / 5 , voglio sapere è possibile con .htaccess per rimuovere l'index.php ed eventuali barre attribuiti in caso di necessità? Come potrei fare per fare questo?

È stato utile?

Soluzione

Sì, è possibile. Con questa regola ogni /index.php richiesta verrà rimosso:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.php[/?\ ]
RewriteRule ^index\.php(/(.*))?$ /$2 [L,R=301]

Ma si dovrebbe utilizzare meglio gli URL corretto fin dall'inizio in modo che l'applicazione sta scontando documenti il ??cui link non contengono il /index.php.

Altri suggerimenti

Se si vuole a livello globale riscrittura index.php / regolatore / azione

Questa configurazione .htaccess dovrebbe fare il trucco:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> 

Questa controlli di configurazione di Apache su se esiste la directory / file su disco o meno (vale a dire la richiesta corrisponde a una vera e propria risorsa su disco), e riscrivere la richiesta di il controller anteriore, se necessario.

Quindi http://www.domain.com/resources/image.png dovrebbe restituire la risorsa immagine. E http://www.domain.com/user/show/5 dovrebbe trasparente riscrivere a http://www.domain.com/index.php/user/show/5

Con questa configurazione, è possibile rimuovere tutti i riferimenti index.php negli URL applicazione e lasciare la riscrittura al server web.

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