J'essaie de forcer toutes mes URL à être en minuscules, mais ce faisant, je perds la connexion à tous les actifs de mon site.
J'ai ajouté ceci à mon fichier .conf:
RewriteMap lc int:tolower
Et ceci à mon .htaccess:
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]
Ceci est ajouté avant ma déclaration finale index.php dans la zone mod_rewrite du fichier .htaccess
Je vais poster mon htaccess complet pour voir. http://Pastebin.com/PsSsVVeR
Pouvez-vous voir ce que je fais mal?
Je m'excuse, mais je suis relativement nouveau en configuration Apache.
Je pense que l'erreur est l'endroit où vous avez placé ces directives dans votre fichier .htaccess:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# New directives inserted...
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]
RewriteRule .* index.php [L]
RewriteRule ^index.php/(.*)$ [L]
Les 3 premières directives RewriteCond
doivent s'appliquer à la directive RewriteRule .* index.php [L]
- pour empêcher la réécriture de actifs de site (fichiers existants) - mais vous avez bloqué vos nouvelles directives le milieu! Les directives RewriteCond
s'appliquent au singleRewriteRule
qui suit. À l'heure actuelle, tous vos actifs du site vont être redirigés (réécrits en interne) vers index.php
- ce qui les fera "disparaître"!
Essayez de déplacer vos deux directives en haut de votre fichier .htaccess (après avoir activé le RewriteEngine
).