Yii Framework Forum: urlSuffix - Problem mit Startseite - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

urlSuffix - Problem mit Startseite Rate Topic: -----

#1 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 21 October 2009 - 12:12 PM

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.

Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#2 User is offline   Y!! 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 978
  • Joined: 18-June 09

Posted 21 October 2009 - 12:28 PM

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.
0

#3 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 21 October 2009 - 12:31 PM

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
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#4 User is offline   yii 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 440
  • Joined: 25-July 09

Posted 21 October 2009 - 02:02 PM

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
Meine Fragen stelle ich öffentlich und baue somit eine Wissensdatenbank für andere auf!
0

#5 User is offline   Y!! 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 978
  • Joined: 18-June 09

Posted 21 October 2009 - 03:04 PM

View Postyii, 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.

View Postyii, 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.

View Postyii, on 21 October 2009 - 02:02 PM, said:

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


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

1

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users