registrieren registriertes Mitglied


Anzeige

Anzeige

mod_rewrite Umlaute entfernen (ä > a, ü > u usw)

Alles zu Domain-Umzug, Weiterleitungen und Robots diskutiert Ihr hier.
Brixton
PostRank 1
PostRank 1
Beiträge: 2
Registriert: 19.02.2016, 10:28

Beitrag Brixton » 19.02.2016, 17:55 mod_rewrite Umlaute entfernen (ä > a, ü > u usw)

Hallo Forum,

ich habe eine kleine Frage zur Mod_rewrite via .htaccess.

In einem kleinen Forum (dient dem Support) wurde vBulletin 5 verwendet. vBulletin 5 ist als Software...nunja, vb4 war besser.

Vor allem hat die Software massive Probleme mit Umlauten.

Das führte dazu, dass eines Tages plötzlich alle Umlaute (Charcode UTF-8) plötzich "?" waren und entsprechende Threads und Foren mit Umlauten im Namen (und dann auch der URL, entsprechend codiert) nicht mehr funktionierten.

Abhilfe schaffte die Umstellung auf ISO. Jedoch hatte das (logischerweise) zur Folge, dass in den URLs nun die codierten Zeichen stehen. Also für ü z.B. %E4

Wenn diese Codierung in der URL steht, weigert sich das Forum aber den JavaScript auszuführen der für die Bearbeitung und Administration wichtig ist.

Abhilfe habe ich erstmal geschaffen indem ich die betreffenden URLs direkt in der SQL Datenbank geändert habe und aus alle ü ein u, aus ä ein a usw. gemacht habe.

Das ist aber natürlich keine dauerhafte Lösung. Sobald User mit Umlauten kommen oder jemand ein neues Thema mit Umlauten erstellt geht die Sache von vorne los.

Daher wollte ich per Mod_rewrite alle Umlaute und codierungen aus den URLs entfernen. Bin damit aber irgendwie nicht so richtig vorwärts gekommen.

Erste Idee war:

Code: Alles auswählen

RewriteRule ^(.*)A(.*)$ $1Ä$2 [N,E=utf8_fixed:1]
RewriteRule ^(.*)a(.*)$ $1ä$2 [N,E=utf8_fixed:1]
RewriteRule ^(.*)O(.*)$ $1Ö$2 [N,E=utf8_fixed:1]
RewriteRule ^(.*)o(.*)$ $1ö$2 [N,E=utf8_fixed:1]
RewriteRule ^(.*)U(.*)$ $1Ü$2 [N,E=utf8_fixed:1]
RewriteRule ^(.*)u(.*)$ $1ü$2 [N,E=utf8_fixed:1]
RewriteRule ^(.*)ss(.*)$ $1ß$2 [N,E=utf8_fixed:1]
Davon war das Forum herzlich wenig beeindruckt. Funktionierte nicht.

Habe dann diverse Versuche gemacht, die die URL direkt enthalten haben wie z.B.:

Code: Alles auswählen

RewriteRule ^haufige-fragen$ häufige-fragen
Also sozusagen Urschleimcode. Aber auch da gabs keine Lösung. Ebenso, wenn ich statt ü direkt die Codierung %E4 genommen habe.

Hier kurz die aktuelle .htaccess:

Code: Alles auswählen

	RewriteEngine On
	RewriteBase /
	
	#In some cases where you have other mod_rewrite rules, you may need to comment out the following line
	#and change it to match your folder name. This resets the other mod_rewrite rules for just this directory
	#If your site was www.example.com/forum, the setting would be /forum/
	#RewriteBase / 

	# Send css calls directly to the correct file VBV-7807
	RewriteRule ^css.php$ core/css.php [NC,L]

	# Redirect old install path to core.
	RewriteRule ^install/ core/install/ [NC,L]

	# Main Redirect
	RewriteCond %{REQUEST_URI} !\.(gif|jpg|jpeg|png|css)$
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(.*)$ index.php?routestring=$1 [L,QSA]

	# Because admincp is an actual directory.
	RewriteRule ^(admincp/)$ index.php?routestring=$1 [L,QSA]
Vielleicht hat hier jemand einen passenden Code parrat. Von Seiten des Forenherstellers ist derzeit leider wohl kein Patch zu erwarten...

Vielen Dank schon einmal für die Mithilfe.

Anzeige von: