Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Doppelpunkt in URL = 403. Wieso?

75 views
Skip to first unread message

Ulf Kadner

unread,
May 14, 2007, 6:45:19 AM5/14/07
to
Moin!

Irgendwie steh ich gewaltig auf dem Schlauch.

Wenn ich: http://example.com/contact:ulf aufrufe bekomme ich nen 403.
Wenn ich: http://example.com/contact/show:ulf aufrufe funktioniert alles.

Der Doppelpunkt scheint also in der ersten Ebene nicht erlaubt zu sein.
Ist das jetzt irgendwo eine Fehlkonfiguration meinerseits?

Rewriterules sind erst mal nur folgende:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9_/:.-]{2,})(\.(php|html?))?$ index.php?qs=$1 [QSA]

Ich verstehe nicht ganz was hier die unterschiedliche Behandlung bzw.
die Einschrängung ausmacht.

Kann man das beeinflußen und es es vor allem unbedenklich das zu wollen?

MfG, Ulf

Dirk Ohme

unread,
May 14, 2007, 8:13:49 AM5/14/07
to
On 14 Mai, 12:45, Ulf Kadner <dr_lo...@gmx.net> wrote:
> Der Doppelpunkt scheint also in der ersten Ebene nicht erlaubt zu sein.
> Ist das jetzt irgendwo eine Fehlkonfiguration meinerseits?

http://www.ietf.org/rfc/rfc1738.txt
"Reserved:
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."

Probier's doch mal mit %3A anstelle von ':'.

Gruß, Dirk

Ulf Kadner

unread,
May 14, 2007, 8:41:15 AM5/14/07
to
Dirk Ohme schrieb:

> http://www.ietf.org/rfc/rfc1738.txt
> "Reserved:
> 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."
>
> Probier's doch mal mit %3A anstelle von ':'.

Erstmal Danke für Dein Reply. Urlencoding hatte ich auch schon probiert.
Das läuft allerdings auf selbe Problem hinaus. (Will heisen, keine
Änderung, immer noch 403)

Ich frag mich wie das bei Wikipedia gemacht wird. Dort funktionierts.

MfG, Ulf

Ulf Kadner

unread,
May 14, 2007, 8:44:19 AM5/14/07
to
Ulf (Ingrid) Kadner schrieb:

> Ich frag mich wie das bei Wikipedia gemacht wird. Dort funktionierts.

Das muß ich gleich mal wieder revidieren. Dort wird das grundsätzlich ab
der 2. Verzeichnisebene genutzt. Da funktionierts bei mir auch. Aber
das Problem bleibt bestehen.

MfG, Ulf

Carsten Wiedmann

unread,
May 14, 2007, 10:29:20 AM5/14/07
to
Ulf Kadner schrieb:

> Wenn ich: http://example.com/contact:ulf aufrufe bekomme ich nen 403.
> Wenn ich: http://example.com/contact/show:ulf aufrufe funktioniert alles.
>

> Rewriterules sind erst mal nur folgende:
>
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_FILENAME} !-d
> RewriteRule ^([A-Za-z0-9_/:.-]{2,})(\.(php|html?))?$ index.php?qs=$1 [QSA]

Das liegt daran, weil Du diese Rules im Directory Context ensetzt. Also muss
erst einmal der Apache ein passendes Verzeichnis für die URI finden, und
bricht dann natürlich ab, weil ":" in Pfadnamen nicht zugelassen ist. Du
kommst erst gar nicht zu den Rules.
(Da wo es tut, in der 2 URI, nimmt er das Verzeichnis "contact" und
behandelt den Rest als PathInfo. Bei der ersten URI gibt es aber auch kein
PathInfo)

Mit:


| RewriteCond %{REQUEST_FILENAME} !-f
| RewriteCond %{REQUEST_FILENAME} !-d

| RewriteRule ^/([A-Za-z0-9_/:.-]{2,})(\.(php|html?))?$ /index.php?qs=$1
[QSA]

Im Server Context tut es dann immer, weil sich mod_rewrite gleich den
Request schnappt bevor der Apache was versucht.

Gruß
Carsten

Ulf Kadner

unread,
May 14, 2007, 11:07:05 AM5/14/07
to
Carsten Wiedmann schrieb:

>> RewriteRule ^([A-Za-z0-9_/:.-]{2,})(\.(php|html?))?$ index.php?qs=$1

> RewriteRule ^/([A-Za-z0-9_/:.-]{2,})(\.(php|html?))?$ /index.php?qs=$1

Hallo Carsten!

Herzlichen Dank für Deine Erleuchtung. Ist natürlich mehr als ärgerlich
für mich da nicht selbst drauf gekommen zu sein zu mal das im Nachhinein
auch absolut logisch erscheint.

Ich hatte gestern und heut 4 Wiki Webanwendungen zerfleischt um zu sehen
was bei denen anders ist als bei mir.

Wer keine Arbeit hat macht sich halt welche. ;-) Ärgerlich.

Danke & MfG, Ulf

Peter J. Holzer

unread,
May 14, 2007, 2:45:04 PM5/14/07
to
On 2007-05-14 14:29, Carsten Wiedmann <carste...@gmx.de> wrote:
> Ulf Kadner schrieb:
>> Wenn ich: http://example.com/contact:ulf aufrufe bekomme ich nen 403.
>> Wenn ich: http://example.com/contact/show:ulf aufrufe funktioniert alles.
>>
>> Rewriterules sind erst mal nur folgende:
>>
>> RewriteCond %{REQUEST_FILENAME} !-f
>> RewriteCond %{REQUEST_FILENAME} !-d
>> RewriteRule ^([A-Za-z0-9_/:.-]{2,})(\.(php|html?))?$ index.php?qs=$1 [QSA]
>
> Das liegt daran, weil Du diese Rules im Directory Context ensetzt. Also muss
> erst einmal der Apache ein passendes Verzeichnis für die URI finden, und
> bricht dann natürlich ab, weil ":" in Pfadnamen nicht zugelassen ist.

Warum soll ":" in Pfadnamen nicht zugelassen sein? Läuft der Server
unter Windows?

hp


--
_ | Peter J. Holzer | I know I'd be respectful of a pirate
|_|_) | Sysadmin WSR | with an emu on his shoulder.
| | | h...@hjp.at |
__/ | http://www.hjp.at/ | -- Sam in "Freefall"

Peter J. Holzer

unread,
May 14, 2007, 2:44:02 PM5/14/07
to
On 2007-05-14 12:13, Dirk Ohme <dirk...@hotmail.com> wrote:
> On 14 Mai, 12:45, Ulf Kadner <dr_lo...@gmx.net> wrote:
>> Der Doppelpunkt scheint also in der ersten Ebene nicht erlaubt zu sein.
>> Ist das jetzt irgendwo eine Fehlkonfiguration meinerseits?
>
> http://www.ietf.org/rfc/rfc1738.txt
> "Reserved:
> 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
^^
Man beachte das "if".

> reserved in a scheme, the octet must be encoded.

Und? Ist ":" im HTTP-Schema reserviert?

Abschnitt 3.3 im gleichen RFC:

| Within the <path> and <searchpart> components, "/", ";", "?" are
| reserved. The "/" character may be used within HTTP to designate a
| hierarchical structure.

Offenbar nicht, also muss es auch nicht kodiert werden.

Ulf Kadner

unread,
May 15, 2007, 4:29:53 AM5/15/07
to
Peter J. Holzer schrieb:

> Warum soll ":" in Pfadnamen nicht zugelassen sein? Läuft der Server
> unter Windows?

Ich habs wirklich unter Windows zum Testen gehabt. Ich wollte erst alle
Probleme ausräumen ehe ich den Apache auch meinem ded. Server neu
konfiguriere.

Aber da gibts nicht wirklich unterschiedliche Handhabe. Unter Windows
tritt das Problem mit meiner alten Rule genauso auf wie auf unixoiden
Systemen.

MfG, Ulf

Peter J. Holzer

unread,
May 15, 2007, 6:26:00 PM5/15/07
to

Liegt aber zumindest nicht daran, dass der Apache prinzipiell kein : in
einem Pfad mag. Gerade mit einem Apache 2.0.55 unter Linux mit einem
einfachen File mit ":" im Namen getestet.

0 new messages