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