Um eine solche Umleitung mit mod_rewrite und .htaccess zu implementieren, müssen Sie eine RewriteMap
Direktive verwenden, die nicht in .htaccess platziert werden kann - nur im Kontext server config / VirtualHost. Wenn Sie einen solchen Zugang haben:
1. Platzieren Sie diese Zeile innerhalb des <VirtualHost>
Blocks für Ihre Site:
RewriteMap lc int:tolower
2. Platzieren Sie dies in Ihrem .htaccess:
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]
Dadurch wird jede URL mit mindestens 1 Großbuchstaben (nur lateinische Buchstaben) im Pfadteil der URL (Abfragezeichenfolge wird ignoriert) auf dieselbe, jedoch in Kleinbuchstaben umgeleitet (301 Permanent Redirect) .
Zum Beispiel:
http://mydomain.com/myfolder-sample-URL.html
=>
http://mydomain.com/myfolder-sample-url.html
http://mydomain.com/myfolder-sample-url.HTML
=>
http://mydomain.com/myfolder-sample-url.html
wird aber nichts für diese URLs tun:
http://mydomain.com/myfolder-sample-url.html?say=MEOW
http://MYDOMAIN.com/myfolder-sample-url.html
Wenn Sie es nur auf HTML-Dateien beschränken möchten:
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule ^.+\.html$ ${lc:%{REQUEST_URI}} [NC,R=301,L]
Wo zu platzieren: Ich würde es nach der Domain Name Redirect-Regel platzieren:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule (.*) http://mydomain.com/$1 [L,R=301]
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]
# your other rules
Ich empfehle auch die Verwendung von rel = "kanonischen" Links:
<link rel="canonical" href="PROPER_URL_HERE" />
Wenn Sie keine Umleitung benötigen, sondern die Datei unabhängig von der Groß- und Kleinschreibung des Dateinamens bereitstellen können ( Dateinamen ohne Berücksichtigung der Groß- und Kleinschreibung), können Sie mod_spelling ( http://httpd.apache.org/docs/current/mod/mod_speling) verwenden .html ) und CheckCaseOnly On
Direktive.