Desidero che URL come server.com/foo non siano sensibili al maiuscolo / minuscolo. Ma server.com/foo riceve effettivamente mod_rewrite’d su server.com/somedir/foo
(Supponiamo che tutti i file in “somedir” siano in minuscolo.)
Quindi la domanda è, come realizzare un mod_rewrite come il seguente:
RewriteRule ^([^/]+)/?$ somedir/convert_to_lowercase($1)
PS: Ecco un utile cheat mod_rewrite – http://dreev.es/modrewrite – sebbene non risponda a questa particolare domanda.
PPS: grazie a Bee e Ignacio per tutto l’aiuto con questo. Inoltre, ecco una domanda correlata: triggerszione RewriteMap
Innanzitutto, inserisci la seguente riga nella sezione
del tuo file .conf. (Per me che vive in /etc/httpd/vhosts.d/00foo.conf
.)
RewriteMap lc int:tolower
Puoi sostituire lc
con qualsiasi nome tu voglia. Quindi riavvia apache, cosa che puoi fare con il sudo service httpd restart
.
Infine, aggiungi questo nel tuo file .htaccess:
RewriteRule ^/(.*)$ /${lc:$1}
RewriteMap tolower int:tolower RewriteRule ^([^/]+)/?$ somedir/${tolower:$1}
Farei un reindirizzamento 301, NON una riscrittura URL, per scopi SEO:
RewriteMap tolower int:tolower RewriteRule ^([^/]+)/?$ somedir/${tolower:$1} [R=301,L]