Ich benutze:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule (.*) http://example.com/$1 [L,R=301]
</IfModule>
Aber ich möchte alle Großbuchstaben in Kleinbuchstaben umschreiben, z.
- ALT:
/myfolder-sample-URL.html
- NEU:
/myfolder-sample-url.html
htaccess
url
301-redirect
mod-rewrite
pelajar
quelle
quelle
Antworten:
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:2. Platzieren Sie dies in Ihrem .htaccess:
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:
wird aber nichts für diese URLs tun:
Wenn Sie es nur auf HTML-Dateien beschränken möchten:
Wo zu platzieren: Ich würde es nach der Domain Name Redirect-Regel platzieren:
Ich empfehle auch die Verwendung von rel = "kanonischen" Links:
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.quelle
Fügen Sie dies oben in Ihrem .htaccess hinzu
Alternativ unterstützt Ihr Host möglicherweise mod_speling. In diesem Fall können Sie in der Serverkonfiguration, im virtuellen Host, im Verzeichnis oder in einer .htaccess-Datei Folgendes verwenden: Beispiel unten:
quelle
lc:
aus LazyOnes Antwort hervorgeht?RewriteMap lc int:tolower
Anforderung sowohl virtuellen Host als auch htaccess .