Comment redirect .htaccess vers deux arbres MVC

Ce que j’ai essayé de réaliser avec apache mod rewrite est le suivant:

  1. Lorsque j’accède à localhost / system / this / is / a / test /, la réécriture du mod .htaccess doit redirect vers mon index.php
  2. Lorsque j’accède à localhost / system / api / this / is / a / test /, la réécriture du mod .htaccess devrait redirect vers mon api.php

J’ai essayé ceci pendant plusieurs heures, mais je n’arrive pas à le faire fonctionner comme je le voudrais. Actuellement, tous les access pointent toujours vers index, et peu importe ce que j’essaie, je ne peux pas sembler avoir le .htaccess pour pointer à la fois sur l’API et l’index en fonction de l’URL.

Voici mon fichier .htaccess actuel:

ExpiresActive On ExpiresByType image/png "access plus 2 weeks" ExpiresByType image/jpg "access plus 2 weeks" ExpiresByType image/jpeg "access plus 2 weeks" AddType application/x-httpd-php .xml Options +FollowSymLinks Options -Indexes RewriteEngine On RewriteBase /system/ # file access exclusions RewriteRule ^(?!sitemap\.xml$).(.*)\.xml$ [R=404,L] RewriteRule ^(.*)\.log$ [R=404,L] RewriteRule ^(.*)\.txt$ [R=404,L] # Rewrite the request to API RewriteCond ${REQUEST_URI} ^api/(.*)$ [NC] RewriteRule ^(.*)$ api.php/$1 [L] # Rewrite the request to index RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,L] 

Est-ce que quelqu’un d’entre vous peut m’expliquer ce que je fais mal? Ce serait une grande aide et grandement apprécié.

Merci d’avance

Remplacez vos règles par ceci:

 RewriteEngine On RewriteBase /system/ # file access exclusions RewriteRule ^(?!sitemap\.xml$).(.*)\.xml$ [R=404,L] RewriteRule ^(.*)\.(txt|log)$ - [R=404,L] # Rewrite the request to API RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^api/(.*)$ api.php/$1 [L] # Rewrite the request to index RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,L]