Ce que j’ai essayé de réaliser avec apache mod rewrite est le suivant:
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]