Uppercase- auf Lowercase-URLs umschreiben per nginx Rewrite Rule

Uppercase- auf Lowercase-URLs umschreiben per nginx Rewrite Rule

Wenn Sie eine URL mit Großbuchstaben wie z.B. http://www.example.com/BEISPIEL.html oder http://www.example.com/BEIspiel.html auf ihr Pendant mit Kleinbuchstaben (also http://www.example.com/beispiel.html) per Rewrite Rule umschreiben möchten, könnten Sie unter Apache die folgende Rewrite Rule in einer .htaccess-Datei verwenden:

RewriteEngine On
RewriteMap  lc int:tolower
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lc:$1} [R=301,L]

 

Umleitung per nginx-Lua-Modul

Unter nginx können Sie das nginx-Lua-Modul (libnginx-mod-http-lua) verwenden, die entsprechende NGINX Direktive könnte dann so aussehen:

location ~ [A-Z] {
  set_by_lua $request_uri_low "return ngx.arg[1]:lower()" $request_uri;
  rewrite ^ https://$host$request_uri_low;
}

Falls Sie weitere Anforderungen haben oder die Umschreibung auf Lowercase nur für einzelne URLs benötigen, müsste diese natürlich noch entsprechend angepasst werden.

Nun ist es leider so, dass das nginx-Lua-Modul nicht in allen nginx-Installationen vorhanden ist. Unter Debian und Ubuntu müssen Sie z.B. mit apt das Paket libnginx-mod-http-lua installieren, um in den Genuss des Lua-Moduls zu kommen. Um zu prüfen, ob das Modul bereits installiert ist, können Sie nachsehen, ob die Datei /usr/share/nginx/modules-available/mod-http-lua.conf bereits existiert. Alternativ können Sie dies auch über apt policy libnginx-mod-http-lua nachvollziehen.

 

Umleitung per PHP-Skript

Falls Ihr nginx nicht das Perl-Modul enthält, gibt es die folgende Möglichkeit, Uppercase-URLs auf Lowercase-URLs umzuschreiben. Dabei werden URLs, die Großbuchstaben enthalten, intern und nach außen unsichtbar auf ein PHP-Skript umgeleitet, das mit der strtolower()-Funktion die URL in Kleinbuchstaben umwandelt und dann mit der header()-Funktion einen 301-Redirect auf die Kleinbuchstaben-URL durchführt.

Das PHP-Skript, wir nennen es hier lower.php, wird ins Document Root gelegt und sieht so aus:

<?php
$uri = $_SERVER['REQUEST_URI'];
$uri_lower = strtolower( $uri );
$location = ($_SERVER['HTTPS'] == 'on' ? 'https' : 'http');
$location .= '://' . $_SERVER['HTTP_HOST'] . $uri_lower;
header( "Location: $location", true, "301" );
exit;
?>

Die Rewrite Rule für nginx prüft erst, ob Großbuchstaben in der URL vorkommen und im nächsten Schritt, ob die angefragte Datei existiert (wenn ja, soll die Datei natürlich direkt ausgeliefert werden, wir brauchen dann keine Umleitung auf die Lowercase-URL). Wenn die Datei nicht existiert, dann wird nach außen unsichtbar auf die PHP-Datei lower.php umgeschrieben, die dann den 301-Redirect auf die Lowercase-URL durchführt.

So sieht die Rewrite Rule für nginx dann im Endeffekt aus:

if ($uri ~ "[A-Z]"){
    set $uc 1;
}
if (!-e $request_filename) {
    set $uc 2$uc;
}
if ($uc = 21) {
    rewrite ^ /lower.php last;
}

 

Zurück zu den Anleitungen

Finden Sie den passenden Tarif

Unser Tarifberater hilft Ihnen dabei, das passende Paket zu finden. Bei Fragen berät Sie unser Sales-Team sehr gerne unter +49 (0) 4131 / 22 78 1-25 oder sales@timmehosting.de.

Bitte beachten Sie: Der Tarifberater dient nur der groben Orientierung. Ihr tatsächlicher Bedarf kann durch den Ressourcenbedarf Ihrer Anwendung(en), tageszeitabhängige/saisonale/aktionsbedingte Schwankungen des Besucheraufkommens, geplantes Wachstum und weitere Faktoren von der Empfehlung abweichen.

  • 1
  • 2
  • 3
  • 4
  • 5

Was möchten Sie hosten?

Möchten Sie einen oder mehrere Shops hosten? (Eine Multishop-Installation gilt als ein Shop.)

Möchten Sie eine oder mehrere Websites hosten? (Eine Multisite-Installation gilt als eine Website.)

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Web Hosting

Zu den ScaleServer Paketen Zu den Web Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Shop Hosting

Zu den ScaleServer Paketen Zu den Shop Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed vServer oder ScaleServer

Zu den Managed vServer Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed Server oder ScaleServer

Zu den Managed Server Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen unsere

Timme Cloud 2.0

Zur Timme Cloud 2.0