urlSuffix - Problem mit Startseite

Meine Config




'urlManager'=>array(

	'urlFormat'		=> 'path',

	'caseSensitive'		=> true,

	'showScriptName'	=> false,

	'urlFormat'		=> 'path',

	'useStrictParsing'	=> true,

	'rules'=>array(

		''			=>	'site/index',

	),

	'urlSuffix'	=> '.html',

),



Alle Seiten, bis auf die Startseite werden korrekt in der Url mit dem Suffix .html angezeigt.


http://localhost/blog2


Seite nicht gefunden

Konnte den Request "" nicht auflösen.

Das Problem hatte ich auch, weiss aber gerade nicht wie ich das gefixt habe. Auf jeden Fall kannst du "useStrictParsing" in der urlManager config auf false setzen, dann sollte es auch gehen - ist aber eine blöde Lösung. Ich melde mich nochmal wenn ich es selber testen kann.

ok, dann warte ich auf deine elegante Lösung, hehe.

Ich habe des Weiteren folgendes Problem. ( Liegt nicht unbedingt an Yii )

Wenn ich Sonderzeichen, wie z.B. ein Doppelpunkt in das Eingabefeld übergebe, werden diese umgewandelt, somit erhalte ich folgendes:


http://localhost/blog/uhrzeit/22%3A45.html

statt


http://localhost/blog/uhrzeit/22:45.html

Vielleicht auch eine Idee, dazu?

edit,

habe grad gelesen das man dies mit der Funktion "urlencode" verändern kann. mmh

Ein weiteres Problem bei urlSuffix ist, dass nun z.B.: das Impressum über zwei URL’s erreichbar ist

Besteht die Möglichkeit das ich

http://localhost/blog2/impressum ===> http://localhost/blog2/impressum.html immer auf die korrekte URL umleite

Also du kannst die Lösung ruhig nehmen - vermutlich störe sowieso nur ich mich an urlStrictParsing auf false. Denn mit der Einstellung kann man die rule "contact => site/contact" einfach direkt über http://example.com/site/contact aufrufen. Ich bin aber dafür nur explizit definierte rules zuzulassen.

Warum das so ist kannst du im RFC unter 2.2 nachlesen.

Mehr kann ich dazu nicht sagen.

Ich denke wir sollte da ein feature-request oder bug einschicken, denn man erwartet ja eigentlich das der url-suffix vorhanden sein muss. Hat mich auch etwas verwirrt…

Auf jeden Fall kannst du es mit einer Funktion lösen die prüft ob der Suffix gesetzt ist oder nicht und dann (wenn nötig) auf die korrekte URL umleitet. Ich habe z.B. einen "Hauptcontroller" der diese Funktion beinhaltet.




<?php


class BaseController extends CController

{


  public function init()

  {

    $this->forceSuffix();

  }


  public function forceSuffix()

  {


    // Hier testen ob die Url korrekt ist und ggf. umleiten


  }


}


?>



Deine einzelnen Controller leitest du dann von dieser Klasse ab. Natürlich könntest du da auch mit htaccess rumdoktern, ich finde die Lösung mit der Funktion aber besser.

// http://www.yiiframework.com/forum/index.php?/topic/5148-urlsuffix-should-be-enforced-when-set/