[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Probleme mit UTF-8 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

Probleme mit UTF-8

14. Nov 2007, 18:33

Hallo,

ich glaube das Redaxo ein Grundsätzliches Problem mit UTF8 Kodierung hat.

Trotz genauer befolgung aller Tipps und Hinweise hier im Forum um Redaxo UTF8 Konform zu gestalten, werden die Umlaute falsch in der Datenbank abgelegt.

Das es nicht an der Konfigation der Datenbank liegt kann ich in sofern ausschliessen, weil ein anderes CMS mit UTF8 und der gleichen Datenbank einwandfrei läuft (auch ModRewrite).

Deshalb habe ich wahrscheinlich auch (habe ich schon in einem anderen Forenbeitrag angefragt) die Probleme mit Modrewrite und Umlauten.

Es wäre schön wenn es sich um einen Fehler im Sytem handelt diesen zu beheben oder evtl. einen Lösung vorschlagen.

Ich finde es nicht besonderst ansprechend das es auf einer Webseite in "Deutsch" keine Umlaute einsetzen kann.

Ich könnte zwar die Umlaute in den Seiten ersetzen damit ich in der Browserzeile keinen Müll stehen habe, das ist aber lästig! und es sollte ja mit UTF8 funktionieren.

Gruß Ralf Wittrock

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

14. Nov 2007, 18:40

Hi Ralf,

da schon sehr viele Leute Seiten mit UTF-8 umgesetzt haben, kann ich deine Vermutung absolut nicht bestätigen.

Umlaute o.ä. sind alles kein Problem..

Gruß,
Markus

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

14. Nov 2007, 18:49

Hallo kills,

Dann gib mir doch bitte einen Tip warum die Umlaute in der Datenbank falsch geschrieben werden (sowohl 3.2 als auch 4.0 und sogar auf unterschiedlichen Servern, bei gleicher Charset konfiguration.)

Außerdem warum werden die Umlaute im Titel dann nicht richtig Rewritet


Ich habe auch nicht gesagt das sich eine Seite nicht in UTF8 umsätzen lässt, sondern das es nicht so funktioniert wie es müsste.
Habe auch bisher so gearbeitet, nur kann ich nicht für jeden Titel mit Umlaut einen Ausweichtitel ohne Umlaute finden, wie es viele machen.

Gruß Ralf Wittrock

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

14. Nov 2007, 18:54

Hi,

du solltest dir vllt mal deine Serverkonfiguration richtig anschauen... Da wie gesagt bei vielen Webseiten auch in Überschriften oder Grafiken die Umlaute mit utf-8 richtig dargestellt werden.

Datenbank auf utf-8 eingerichtet?
REDAXO auf utf-8 eingerichtet?
Deine Dateien sind via FTP als ISO hochgeladen?
Browser auf utf-8 eingerichtet?
Template verschickt utf-8 header?

Viele Grüße,
Markus

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

14. Nov 2007, 18:58

Hallo Kills,

habe gerade mal die Referenzen durchgesehen und könnte Dir viele Webseiten die von Argenturen erstellt worden sind und UTF verwenden geben, bei denen der Umlautfehler in der Url zu sehen ist.

Schein aber außer mir keinen zu Interessieren wie die Urls heissen die im Web dann rumgeistern.

Gruß Ralf Wittrock

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

14. Nov 2007, 19:08

Hallo Kills,
Datenbank auf utf-8 eingerichtet?
REDAXO auf utf-8 eingerichtet?
Deine Dateien sind via FTP als ISO hochgeladen?
Browser auf utf-8 eingerichtet?
Template verschickt utf-8 header?
habe ich alles gemacht und das behebt auch nicht das Problem das Redaxo die im Backend eingegebenen Daten die Umlaute enthalten falsch an die Datenbank schickt bzw. dort einträgt.

Datenbank läuft auf "utf8_general_ci"
Redaxo "läuft auf utf8"

Der Browser scheint wohl richtig eingerichtet zu sein sonnst würde ich die anderen Seiten nicht UTF Konform angezeigt zu bekommen.

In jedem Template" ist der "utf-8 header"

Ich arbeite noch mit einem anderen CMS und der gleichen FTP Einstellung und dort funktioniert es ja auch.

Außerdem ist mein Problem nicht die Anzeige im Frontend (dort werden die Umlaute angezeigt) sondern die falschen Datenbank Einträge der Daten und das mit dem Modrewrite in verbindung mit utf-8.

Es gab hier im Forum schon einmal ein ähnliches Thema das Redaxo dieses Problem hat (wurde aber nicht weiter behandelt)

Gruß Ralf Wittrock

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

14. Nov 2007, 20:45

Hi,

dir ist bewusst, dass ein "ä" z.b. in einer Url mit "%E4" dargestellt wird..? Einen Umlaut wirst da also niemals finden..

REDAXO sollte ein ä zu ae, analog die anderen Umlaute, umformen.

Gruß,
Markus

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

14. Nov 2007, 20:54

Hallo Kills,

ich möchte ja in der Url keine Umlaute sondern die umgeformten Buchstaben!

Z.B "ü" in "ue" aber das funktioniert nicht.

Ich muss bei mir entweder alle Seitentitel z.b "Über uns" gleich so eingeben "Ueber uns" sonnst habe ich Müll in der Browserzeile.

Um das ganze noch einmal zu Verdeutlichen:

Ich möchte als Seitentitel z.B. "Über uns" eingeben und Redaxo soll daraus "Ueber uns" machen. Das funktioniert aber bei mir nicht.

Gruß Ralf

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

14. Nov 2007, 23:19

Hi,

das geht nur in R4 bisher richtig mit Utf-8. Ist die function_url im ISO format hochgeladen (dass muss sie, unabhängig davon ob in irgendeinem anderen CMS irgendwas geht..)?

Gruß,
Markus

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

14. Nov 2007, 23:28

Hi Kills,

das bringt mich ja endlich weiter! Dann weiss ich das ich mit 3.2 da nicht weiter Probieren muss.

Das mit dem anderen CMS hatte ich nur eingeworfen um eine Fehlkonfiguration auszuschließen.

Gruß Ralf Wittrock

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

14. Nov 2007, 23:41

Hi Ralph,

ich weiß nicht, wo Dein Problem liegt? Du musst das nicht gleich auf das CMS schieben, wenn was nicht klappt.
Ich hab schon Dutzende von Websites mit UTF8 gemacht, und das geht natürlich.

Um in Redaxo eine Website mit UTF-8 korrekt auszugeben, müssen drei Bedingungen erfüllt sein:
1. Die Inhalte müssen auch mit UTF-8 im Backend abgespeichert worden sein. Wenn die Einstellung beim Hinzufügen von Inhalten noch auf „de“ stand, muss man die Inhalte ggf. nochmal öffnen und neu abspeichern, nachdem man auf UTF-8 umgestellt hat.
2. Der Zeichensatz muss im Header korrekt stehen:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3. Man muss die noch oberhalb des Headers per PHP die Ausgabe auf UTF-8 umschalten:
<? header('Content-Type: text/html; charset=utf-8'); ?>

Der URL-Rewriter übersetzt auch die Umlaute korrekt. Zumindest das URL_Rewrite-Addon. Auch bei Version 3.2.
Siehe z.B. http://www.radreisen-mecklenburg.de
Das Addon Real_URL tut das dagegen nicht, das stimmt. Da wäre aber eine Anpassung mit str_replace höchstwahrscheinlich auch schnell gemacht.

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

15. Nov 2007, 00:13

Hallo pbickel,

Ich weiss nicht warum man immer gefragt wird was für Probleme man hat wenn ein Fehler bzw. eine Funktionseinschränkung gefunden wird und diese dann kund tut? Dafür ist das Forum doch auch dar, oder?

Es liegt doch wohl nahe das man evtl. Umlaute in die Titel eingibt und dann auch das ModRewrite nutzen möchte. Es steht ja nirgendwo das dass Modrewrite nicht mit Umlauten funktioniert oder?. Wenn man dann aber feststellt das es nicht geht, meldet man sich und fragt nach.

Kills hat ja selber gesagt das es erst richtig mit Redaxo 4.0 geht.


Desweiteren habe ich eben das Redaxo Interne ModRewrite statt RealUrl bei einer neuen 3.2.3er Installation ausprobiert.

Habe eben das Original Modrewrite von Redaxo 3.2.3 ausprobiert!! dort werden nähmlich einfach die Umlaute aus der Url weggelassen und erst garnicht ersetzt. Prima oder?


Ich schiebe auch nichts auf das CMS oder Redaxo, aber dieser Fehler liegt nunmal bei Redaxo 3.2 oder 3.2.3.

Und ich weise noch einmal daraufhin das ich das mit dem utf8 im Backend und im Template richtig eingepflegt habe.
1. Die Inhalte müssen auch mit UTF-8 im Backend abgespeichert worden sein. Wenn die Einstellung beim Hinzufügen von Inhalten noch auf „de“ stand, muss man die Inhalte ggf. nochmal öffnen und neu abspeichern, nachdem man auf UTF-8 umgestellt hat.
2. Der Zeichensatz muss im Header korrekt stehen:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3. Man muss die noch oberhalb des Headers per PHP die Ausgabe auf UTF-8 umschalten:
<? header('Content-Type: text/html; charset=utf-8'); ?>
Ich habe auch nichts umgestellt sondern die Seite neu mit 3.2.3 im utf8 Format aufgebaut.

Gruß Ralf Wittrock

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

15. Nov 2007, 00:48

Hallo,

da pbickel mich gefragt hat was für ein Problem ich habe, hier nun meine Probleme.

Das eben runtergeladene Addon "Url_Rewrite" installiert und konfiguriert.

1. In der Hilfe wird auf eine Config Datei hingewiesen die es dort in dem Pfad nicht gibt (habe diese aber gefunden).

2. bekomme jetzt folgende Fehlermeldungen:

Code: Alles auswählen

Warning: myUrlRewriter::include_once(./redaxo/include/generated/files/pathlist.php) [function.myUrlRewriter-include-once]: failed to open stream: Datei oder Verzeichnis nicht gefunden in /kunden/160340_32584/webseiten/redaxo/include/addons/url_rewrite/classes/class.rewrite_fullnames.inc.php on line 169
Ich werde natürlich weiter versuchen den Fehler zu finden, wollte damit aber nur sagen das jemand der neu einsteigt keine Chance hat.

Desweitern finde ich es nicht schön das die Redaxo Version 3.2.3 die man Downloaden kann immer noch den Fehler in der der "class.phpmailer.inc" hat und damit ein Mailversand so nicht möglich ist.

Vieleicht sollte man entweder die Datei langsam einmal austauschen oder in der Readme in Fettschrift daraufhinweisen das wenn man das CMS nutzen möchte sich erst einmal im Forum die Fehlerlösungen besorgen sollte.

Gruß Ralf Wittrock

zehbaeh
Beiträge: 556
Registriert: 17. Okt 2006, 11:52
Wohnort: Solingen

15. Nov 2007, 17:19

Hast Du schonmal in phpMyAdmin (oder vergleichbares) die MySQL Variablen für die Verbindungseinstellungen bezüglich charset und collationen überprüft?

In phpMyAdmin mal:
SHOW VARIABLES WHERE (variable_name LIKE 'char%') OR (variable_name LIKE 'coll%')

eingeben.

Evtl. auch ein SET NAMES 'utf8' auf die MySQL-Verbindung loslassen.

PHP und UTF-8 passt aber eh nicht wirklich zusammen. Die 6er Version schafft da hoffentlich endlich Abhilfe. Ob das bei Dir auch nur ansatzweise zusammenpasst, kannst Du mal mit einer UTF-8 kodierten Datei mit folgendem Inhalt testen:

<?php
$s = 'Ä';
echo strlen($s);
echo $s[0];
?>

Theo. Soll-Ausgabe:

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

16. Nov 2007, 12:44

Also Ralph,

nun mal langsam.
Natürlich ist das Forum für Probleme aller Art da. Aber Du meintest bei der Eröffnung des Threads, dass Redaxo ein grundsätzliches Problem mit UTF8 hat, und da habe ich widersprochen.
Denn wieso sollte es mir sonst problemlos gelingen, seit Jahren Websites mit UTF8 zu erstellen?

Redaxo ist halt kein Zusammen-Klick-System für Neulinge/Einsteiger. Das wirst Du sicher gelesen haben, denn wir weisen immer deutlich darauf hin. Redaxo ist eher als flexibles CMS-Framework zu verstehen, das man ggf. anpassen muss, das einem eher das Handwerkszeug liefert und kein fertiges Haus hinstellt. Dafür ist es auch flexibler als Typo3 oder Joomla.

So kommt es, dass viele Leute bestimmte Module und Addons weiter entwickeln und natürlich nicht immer in den Download stellen. Wir sind eine Community, wo jeder seinen Teil beitragen muss, damit der Laden läuft. Der Fullnames-Rewriter ist auch von verschiedenen Leuten weiter entwickelt worden (siehe diverse Forumbeiträge), um ihm zum Beispiel die Umlaute korrekt beizubringen oder ein .html anzuhängen. Das Ding läuft und ist bei jedem so im Einsatz, wie er das halt benötigt und für sich modifiziert hat. Es steht Dir frei, Deine Fassung zusammenzuschrauben und zum Download zur Verfügung zu stellen (und kostenlosen Support dafür zu leisten!), wie das andere auch tun.

Zu Deinem Fehler:
Die Installation des Addons klappt bei den allermeisten Servern. Du hast anscheinend einen Server, der mit den Schreibrechten etwas speziell ist.
Lege eine leere Datei pathlist.php in dem angegebenen Verzeichnis an, dann müsste das laufen.

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

16. Nov 2007, 12:59

Hallo pbickel,

das mit dem Addon habe ich dann Installiert bekommen. Lag aber nicht an den Schreibrechten, die sind bei meinem Provider nicht eingeschränkt, es lag an einem anderen Fehler!

Ich hatte das Modul für die Redaxo Version 3x Version des Addons 1.0 Stable runtergeladen. Es wird aber nicht daraufhingewiesen das die Version schon für 3.3 ist, da schon die SQL und andere Änderungen drin sind sodass diese Version nicht mit 3.2.3 läuft.

Danke trotdem für Deine Hilfe.

Vieleicht kannst Du mir aber sagen was ich machen muss um bei dem "Url_rewrite" Addon nicht nur "http://www.meine-seite.de/test/" sondern "http://www.meine-seite.de/test/test.html" angezeigt zu bekommen.
Das bekomme ich leider mit dem Addon bei 3.2 und 4.0 nicht hin, in beiden Redaxo Versionen wird mir nie die .html mit angezeigt.

Gruß Ralf Wittrock

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

16. Nov 2007, 13:14

Ich hab in der rewrite_fullnames hinter

Code: Alles auswählen

$fcontent .= '$REXPATH[\''.$var['id'].'\'][\''.$var['clang'].'\'] = "'.mysql_escape_string($pathname).'";'."\n";
folgendes gesetzt:

Code: Alles auswählen

$fcontent = str_replace('/";','.html";',$fcontent); 
Danach Cache löschen.

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

16. Nov 2007, 13:17

Hi pbickel,

danke für den Tip.

Werde es heute abend gleich ausprobieren und Meldung machen.

Gruß Ralf Wittrock

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

16. Nov 2007, 18:45

Hallo pbickel,

funktioniert bei mir leider nicht!

Ich bekomme jetzt zwar die Seite mit .html Endung angezeigt,

aber nun keine Fullnames mehr und die Links laufen ins Leere.


Gruß Ralf Wittrock

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

16. Nov 2007, 22:36

Kannst Du das näher erläutern?
Wie lauten die Links? Wie die Fehlermeldung?
Welche Redaxo-Version?
Wie sieht die htaccess aus?

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

16. Nov 2007, 23:46

Hallo pbickel,

ich nutze Redaxo 3.2 und eine 4.0 Version, das Ergebnis ist bei beiden gleich.

Wenn ich das Addon ohne Deine Codeänderung einsetze sind die Links so:

Code: Alles auswählen

www.meine-seite.de/Test/
und es kommt die Meldung Seite wurde nicht gefunden.

Wenn ich das Addon mit Deiner Codeänderung einsetze sind die Links so:

Code: Alles auswählen

www.meine-seite.de/24-0-Test.html
und es kommt auch Seite wurde nicht gefunden.

Die .htaccess lautet:

Code: Alles auswählen

RewriteEngine On
 RewriteBase /
 RewriteCond %{REQUEST_URI}  !redaxo.*
 RewriteCond %{REQUEST_URI}  !files.*
 RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]

Gruß Ralf Wittrock

Benutzeravatar
n.ruediger
Beiträge: 405
Registriert: 21. Mär 2007, 12:25
Wohnort: Frankfurt (Oder)
Kontaktdaten: ICQ Website Yahoo Messenger

17. Nov 2007, 01:48

Hallo,

für realurl steht jetzt ein Update mit UTF8-Unterstützung bereit.

Liebe Grüße,
Nicole

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

17. Nov 2007, 13:16

Hi Ralph,

die Links bei Dir sind nicht korrekt. Sieht fast so aus, als hättest Du mod_rewrite nicht aktiviert (unter Specials). Kann das sein?

Ansonsten - hier sind fullnames_rewrite und htaccess, die ich auf x-Seiten mit Redaxo 3.2 erfolgreich einsetze:

Code: Alles auswählen

<?php

/**
 * URL-Rewrite Addon
 * @author staab[at]public-4u[dot]de Markus Staab
 * @author <a href="http://www.public-4u.de">www.public-4u.de</a>
 * @package redaxo3
 * @version $Id: class.rewrite_fullnames.inc.php,v 1.11 2006/04/25 07:45:33 tbaddade Exp $
 */

/**
 * URL Fullnames Rewrite Anleitung:
 *
 *   .htaccess file in das root verzeichnis:
 *     RewriteEngine On
 *     RewriteBase /
 *     RewriteRule .*\/$ index.php?%{QUERY_STRING} [L]
 *
 *   .htaccess file in das redaxo/ verzeichnis:
 *     RewriteEngine Off
 *
 * @author office[at]vscope[dot]at Wolfgang Huttegger
 * @author <a href="http://www.vscope.at/">vscope new media</a>
 */
if ($REX['REDAXO'])
{
  // Die Pathnames bei folgenden Extension Points aktualisieren
  rex_register_extension('CAT_ADDED', 'rex_rewriter_generate_pathnames');
  rex_register_extension('CAT_UPDATED', 'rex_rewriter_generate_pathnames');
  rex_register_extension('CAT_DELETED', 'rex_rewriter_generate_pathnames');

  rex_register_extension('ART_ADDED', 'rex_rewriter_generate_pathnames');
  rex_register_extension('ART_UPDATED', 'rex_rewriter_generate_pathnames');
  rex_register_extension('ART_DELETED', 'rex_rewriter_generate_pathnames');

  rex_register_extension('CLANG_ADDED', 'rex_rewriter_generate_pathnames');
  rex_register_extension('CLANG_UPDATED', 'rex_rewriter_generate_pathnames');
  rex_register_extension('CLANG_DELETED', 'rex_rewriter_generate_pathnames');
  
  rex_register_extension('ALL_GENERATED', 'rex_rewriter_generate_pathnames');
}

class myUrlRewriter extends rexUrlRewriter
{
	// Konstruktor
	function myUrlRewriter()
	{
	// Parent Konstruktor aufrufen
	$this->rexUrlRewriter();
	}

	// Parameter aus der URL fuer das Script verarbeiten
	function prepare()
	{
		
		global $article_id, $clang, $REX, $REXPATH;
		
		
	    if(!$REX['REDAXO']){

	        $pathlist = $REX['INCLUDE_PATH']."/generated/files/pathlist.php";
	        include_once ($pathlist);


	        $script_path = dirname($_SERVER['PHP_SELF']);
	        //$script_path = $_SERVER['PHP_SELF'];
	        //print $script_path;

	        if (isset ($_SERVER['REQUEST_URI']))
	        {
	          //$path = str_replace($script_path, "", $_SERVER['REQUEST_URI']);
			  // TAB Aenderung
	          $path = $_SERVER['REQUEST_URI'];
	          
	          $path=split("[?]",$path);
	          $path=$path[0];
	        }
	        
	        //print  $_SERVER['REQUEST_URI'];
	        //print $_SERVER['PHP_SELF'];
	        //print $path;
	        
	        //$path = substr($path, 1);
			//$path = '/'.$path;
			
			//print $path;
			
	        if ($path == '')
	        {
	          $article_id = $REX['START_ARTICLE_ID'];
	          return true;
	        }
			

	        foreach ($REXPATH as $key => $var)
	        {
	          foreach ($var as $k => $v)
	          {
	            if ($path == $v)
	            {
	              $article_id = $key;
	              $clang = $k;
	            }
	          }
	        }
	        

	        // Check Clang StartArtikel
	        if (!$article_id)
	        {
	          include ($REX['INCLUDE_PATH']."/clang.inc.php");
	          if (is_array($REX['CLANG']))
	          {
	            foreach ($REX['CLANG'] as $key => $var)
	            {
	              if ($var."/" == $path)
	              {
	                $clang = $key;
	              }
	            }
	          }
	        }

	        // Check levenshtein
	        if (!$article_id)
	        {
	          foreach ($REXPATH as $key => $var)
	          { 
	            foreach ($var as $k => $v)
	            { 
	              $levenshtein[levenshtein($path, $v)] = $key."#".$k;
	            }
	          }
	          ksort($levenshtein);
	          $best = explode("#", array_shift($levenshtein));
	          $article_id = $best[0];
	          $clang = $best[1];
	        }
	        if (!$article_id)
	        {
	          $article_id = $REX['START_ARTICLE_ID'];
	          return true;
	        }

	    }

	}

// Url neu schreiben
function rewrite($params)
  {
    global $REX, $REXPATH;
    if (!$REXPATH)
    { include_once ($REX['INCLUDE_PATH']."/generated/files/pathlist.php");

    }
    $id = $params['id'];
    $name = $params['name'];
    $clang = $params['clang'];
    $params = $params['params'];
    $params = $params == '' ? '' : "?".$params;
    $url = $REXPATH[$id][$clang].$params;
    return $url;
  }
}

function rex_rewriter_generate_pathnames($params = array())
{
  global $REX;

  $db = new sql();
  $result = $db->get_array("SELECT id,catname,name,clang,path FROM rex_article");
  if (is_array($result))
  {
    foreach ($result as $var)
    { $var['catname']=str_replace("Ü","Ue",$var['catname']);
      $var['name']=str_replace("Ü","Ue",$var['name']);
      $var['catname']=str_replace("ü","Ue",$var['catname']);
      $var['name']=str_replace("ü","ue",$var['name']);
      
      $var['catname']=str_replace("Ä","Ae",$var['catname']);
      $var['name']=str_replace("Ä","Ae",$var['name']);
      $var['catname']=str_replace("ä","ae",$var['catname']);
      $var['name']=str_replace("ä","ae",$var['name']);
      
      $var['catname']=str_replace("Ö","Oe",$var['catname']);
      $var['name']=str_replace("Ö","Oe",$var['name']);
      $var['catname']=str_replace("ö","oe",$var['catname']);
      $var['name']=str_replace("ö","oe",$var['name']);
      
      $var['catname']=str_replace("ß","ss",$var['catname']);
      $var['name']=str_replace("ß","ss",$var['name']);
      
      
      $article_names[$var['id']][$var['clang']]['name'] = rex_parseArticleName($var['name']);
      $article_names[$var['id']][$var['clang']]['catname'] = rex_parseArticleName($var['catname']);
    }
  }

  $fcontent = "<?php\n";
  if (is_array($result))
  { 
  	foreach ($result as $var)
    { $var['catname']=str_replace("Ü","Ue",$var['catname']);
      $var['name']=str_replace("Ü","Ue",$var['name']);
      
      
      $clang = $var['clang'];
      if (count($REX['CLANG']) > 1)
      {
        $pathname = $REX['CLANG'][$clang]."/";
      }
      else
      {
        $pathname = '';
      }
      
      $path = explode("|", $var['path']);
      $path[] = $var['id'];
      
      foreach ($path as $p)
      {
        if ($p != "")
        {
          $curname = $article_names[$p][$clang]['catname'] == '' ? $article_names[$p][$clang]['name'] : $article_names[$p][$clang]['catname'];
          if ($curname != '')
          {
            $pathname .= $curname."/";
          }
        }
      }
      $fcontent .= '$REXPATH[\''.$var['id'].'\'][\''.$var['clang'].'\'] = "/'.mysql_escape_string($pathname).'";'."\n";
       $fcontent = str_replace('/";','.html";',$fcontent); 
    }
  }
  $fcontent .= "?>";

  $handle = fopen($REX['INCLUDE_PATH']."/generated/files/pathlist.php", "w");
  fwrite($handle, $fcontent);
  fclose($handle);
}
?>

htaccess:

Code: Alles auswählen

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !\/redaxo.*\/.*
RewriteCond %{REQUEST_URI}  !\/files.*\/.*
RewriteCond %{REQUEST_URI}  !\/pics.*\/.*
RewriteCond %{REQUEST_URI}  !\/js.*\/.*
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

17. Nov 2007, 13:34

Hallo pbickel,

danke für die Hilfe.
Der Fehler lag in meiner .htaccess, ich habe diese mit Dreamweaver bearbeitet und dort ist was beim speichern in die Uhr gegangen.

Hatte mich auch schon gewundert, das die Urls mit und ohne .htaccess gleich waren.

Jetzt mit Textedit bearbeitet und alles ist OK!

Ralf Wittrock

Zurück zu „Allgemeines [R4]“