mod_rewrite und Umlaute

Identität

Erfahrenes Mitglied
Hallo,

ich benutze mod_rewrite und es gibt da noch ein Problem mit den Umlauten. Die Suchergebnisse bringen mich nicht weiter, ich wollte nur wissen, wie man am sinnvollsten damit umgeht. Also ein Beispiel meiner Url:

http://localhost/übersicht/

Klar, ich könnte ganz einfach ue drauß machen, aber das ist leider User generierter Content, ich möchte eigendlich nicht aufpassen müssen, das keine Umlaute eingetragen werden in der Datenbank. Kann man das vielleicht direkt in der .htaccess beschreiben?
Danke schon Mal!

Viele Grüße!
 
Verwende am besten UTF-8, um die Daten zu kodieren. Dann stellen sie die meisten Browser auch anstatt der eigentlichen %-Kodierung dar.
 
Ja über was unterhalten wir uns beide hier denn?;)
Es heißt zwar, Google kann mit Umlauten umgehen, aber mir ist das nicht ganz geheuer. Schöner wäre doch, anstatt einem ä ein ae oder nicht?

Auch für andere Suchmaschinen ...
 
Warum ersetzt du nicht einfach vorm Eintragen in die Datenbank die Umlaute durch ihre jeweilige Entsprechung?

Und warum sollte Google Probleme haben mit Umlauten?
"gününüz" (türkisch Glückwunsch) bringt dir z. B: auch Treffer und warum sollte Google den Titel einer Seite anders kodieren bzw. interpretieren als die URI?
 
Ja das scheint alles zu stimmen, jedoch ist mir das ohne Umlaute lieber. Ist einfach so, da ich auch nicht weiß wie andere damit umgehen.

Ich werde es wohl so machen wie Felix Jacobi es sagt. Aber das Problem ist, das die Umlaute dann auch von der Seite verschwinden, aber sie sollen nur nicht in der URL auftauchen.

Hmmm... werde sie dann wohl doch in der URL lassen...
 
Ich habs irgendwann mal so gelöst:
PHP:
function make_url($input)
{
	$input = str_replace(" ", "-", $input);
	$input = str_replace("ä", "ae", $input);
	$input = str_replace("Ä", "Ae", $input);
	$input = str_replace("ö", "oe", $input);
	$input = str_replace("Ö", "Oe", $input);
	$input = str_replace("ü", "ue", $input);
	$input = str_replace("Ü", "Ue", $input);
	$input = str_replace("&", "-and-", $input);
	$input = str_replace("ß", "sz", $input);
	$input = str_replace("?", "-ask-", $input);
	$input = str_replace("ä", "ae", $input);
	$input = str_replace("Ä", "Ae", $input);
	$input = str_replace("ö", "oe", $input);
	$input = str_replace("Ö", "Oe", $input);
	$input = str_replace("ü", "ue", $input);
	$input = str_replace("Ü", "Ue", $input);
	$input = str_replace("&", "-and-", $input);
	$input = str_replace("ß", "sz", $input);
	$input = str_replace("--", "-", $input);
	$input = str_replace("---", "-", $input);
return $input;
}
Sieht einfach schöner aus als die URL-Codierten Teile...
 
Dir ist aber klar, dass die URL Kodierung etwas anderes ist als HTML Sonderzeichen?

Außerdem finde ich deine Funktion leider suboptimal. Warum benutzt du X Aufrufe von [phpf]str_replace[/phpf] wenn die Funktion auch Arrays akzeptiert?
 
Zuletzt bearbeitet:
Zurück