web-dev-qa-db-fra.com

Redirections minuscules 301 - Les actifs du site disparaissent

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.

1
Dan Hanly

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).

1
MrWhite