yii, on 21 October 2009 - 12:31 PM, said:
ok, dann warte ich auf deine elegante Lösung, hehe.
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.
yii, on 21 October 2009 - 12:31 PM, said:
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
Warum das so ist kannst du im
RFC unter 2.2 nachlesen.
Quote
In addition, octets may be encoded by a character triplet consisting
of the character "%" followed by the two hexadecimal digits (from
"0123456789ABCDEF") which forming the hexadecimal value of the octet.
(The characters "abcdef" may also be used in hexadecimal encodings.)
Octets must be encoded if they have no corresponding graphic
character within the US-ASCII coded character set, if the use of the
corresponding character is unsafe, or if the corresponding character
is reserved for some other interpretation within the particular URL
scheme.
...
Many URL schemes reserve certain characters for a special meaning:
their appearance in the scheme-specific part of the URL has a
designated semantics. If the character corresponding to an octet is
reserved in a scheme, the octet must be encoded. The characters ";",
"/", "?", ":", "@", "=" and "&" are the characters which may be
reserved for special meaning within a scheme. No other characters may
be reserved within a scheme.
Mehr kann ich dazu nicht sagen.
yii, on 21 October 2009 - 02:02 PM, said:
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.yiiframew...orced-when-set/
This post has been edited by Y!!: 21 October 2009 - 03:30 PM