You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Christopher Gerharz <li...@cgerharz.de> on 2006/12/05 03:32:28 UTC
Re: [OT?] mod_rewrite / Reg-Ex
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hallo Sebastian,
Sebastian Kayser wrote:
[...]
danke fuer Deinen Tipp.
Das Logfile (die richtige Anweisung lautet RewriteLog - ohne -File) hat
mich auf die Spur gebracht, dass die Slashes am Anfang - warum auch
immer - nicht mitgematcht werden.
So komme ich zu folgender funktionierenden RegEx:
> RewriteRule ^(.+)/([a-z]+)-(.+)-.*\.html$ /landing.php?tab=$1&module=$2¶m=$3
> RewriteRule ^(.+)/([a-z]+)-.*\.html$ /landing.php?tab=$1&module=$2
> RewriteRule ^(.+)/([a-z]+).html$ /landing.php?tab=$1&module=$2
Das hat zwar immer noch nicht ganz den gewuenschten Zweck, da in manchen
Faellen Parameter abgeschnitten werden, aber das ist jetzt noch bisschen
Tueftelei. ;)
Danke vielmals!!
>
> Sebastian
Christopher
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)
iD8DBQFFdNo86k8b5IOi9YMRAuN+AJ4t/b5iIkgc5PMtrCXsXn59V/cR8QCgvBe3
CQ75ooxmMCtPVyCE28IQRH8=
=uiy3
-----END PGP SIGNATURE-----
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: [OT?] mod_rewrite / Reg-Ex
Posted by Max Dittrich <ma...@t-online.de>.
Hi,
Christopher Gerharz schrieb:
>
> Sebastian Kayser wrote:
> [...]
>
> danke fuer Deinen Tipp.
> Das Logfile (die richtige Anweisung lautet RewriteLog - ohne -File) hat
> mich auf die Spur gebracht, dass die Slashes am Anfang - warum auch
> immer - nicht mitgematcht werden.
Die URL auf die der reguläre Ausdruck angewendet wird ist bei
RewriteRules im Serverkontext (VirtualHost) und bei Verzeichniskontexten
(Directory, .htaccess) unterschiedlich:
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule
Wie Du selber gesehen hast, fehlt im Verzeichniskontext mindestens der
führende "/" - nämlich der Verzeichnisprefix.
>
> So komme ich zu folgender funktionierenden RegEx:
>
>> RewriteRule ^(.+)/([a-z]+)-(.+)-.*\.html$ /landing.php?tab=$1&module=$2¶m=$3
>> RewriteRule ^(.+)/([a-z]+)-.*\.html$ /landing.php?tab=$1&module=$2
>> RewriteRule ^(.+)/([a-z]+).html$ /landing.php?tab=$1&module=$2
>
> Das hat zwar immer noch nicht ganz den gewuenschten Zweck, da in manchen
> Faellen Parameter abgeschnitten werden, aber das ist jetzt noch bisschen
> Tueftelei. ;)
Da könnte Dir das Flag [QSA] am Ende Deiner RewriteRule weiterhelfen.
Dies übernimmt den Querystring aus der eigentlichen Anfrage und vereint
ihn mit den Parametern aus Deiner Ersetzung.
Grüsse,
.max
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------