Question

Je me demande, est-il possible de supprimer index.php d'une URL? En gros sur certaines pages dans un site que j'ai cette structure,

http://www.domain.com/index.php/members/register , mais d'autres pages que j'ai des structures d'URL comme celui-ci, http: //www.domain .com / category / products / id / 5 , je veux savoir est-il possible avec htaccess pour enlever le index.php et les barres obliques attribués en cas de besoin? Comment dois-je prendre?

Était-ce utile?

La solution

Oui, vous pouvez. Avec cette règle sera supprimé toute /index.php demandé:

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

Mais vous devriez mieux utiliser les URL appropriées dès le début afin que votre application est au service des documents dont les liens ne contiennent pas le /index.php.

Autres conseils

Si vous voulez globalement rewrite index.php / contrôleur / action

Cette configuration .htaccess devrait faire l'affaire:

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

vérifie la configuration sur Apache si le fichier / répertoire existe sur le disque ou non (la demande correspond à une véritable ressource sur le disque), et réécrire la demande votre contrôleur frontal si nécessaire.

http://www.domain.com/resources/image.png doit retourner la ressource d'image. Et http://www.domain.com/user/show/5 devrait transparente à réécrire http://www.domain.com/index.php/user/show/5

Avec cette configuration, vous pouvez supprimer toutes les références index.php dans vos URL d'application et laisser la réécriture sur le serveur Web.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top