michael: mod_rewrite Rule will nicht so wie ich will

hallo alle zusammen,

ich versuche gerade einen einstieg in mod_rewrite zu machen, flieg aber irgendwie gnadenlos auf die schnauze ;-)

ich habe eine orginal URL: /autor/?go=vita

und will dieser so aufrufbar machen: /autor/vita.html

Dazu habe mir folgende RewriteRule gebastelt: RewriteRule ^autor/(.*).html$  autor/?go=$1

aber irgendwie bekomme ich nur eine 404. modrewrite selber funktioniert aber, es muss irgendwie an dem ausdruck liegen?

ich meine, nur zum verständnis: wenn jemand eine url anfordert, die mit autor/ + "irgendwas" +.hmtl anfordert, dann wird intern auf autor/go="irgendwas" verwiesen, oder?

ich versteh nicht, wiso das nicht funktionieren soll? vieleicht kann mir jemand auf die sprünge helfen? ;-)

grüße, michael

  1. Hi,

    ich habe eine orginal URL:
    /autor/?go=vita
    und will dieser so aufrufbar machen:
    /autor/vita.html

    Dazu habe mir folgende RewriteRule gebastelt:
    RewriteRule ^autor/(.*).html$  autor/?go=$1

    Warum läßt Du bei der RewriteRule die / am Anfang der beiden URL-Teile weg?

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. hi,

      danke für deine antwort.

      Dazu habe mir folgende RewriteRule gebastelt:
      RewriteRule ^autor/(.*).html$  autor/?go=$1

      Warum läßt Du bei der RewriteRule die / am Anfang der beiden URL-Teile weg?

      ich hab die beiden / jetzt mal eingebaut:
      RewriteRule ^/autor/(.*).html$  /autor/?go=$1

      bringt aber noch immer nix - ausser 404 ?

      grüße,
      michael

      1. Hi,

        ich hab die beiden / jetzt mal eingebaut:
        RewriteRule ^/autor/(.*).html$  /autor/?go=$1
        bringt aber noch immer nix - ausser 404 ?

        Ist der DirectoryIndex richtig gesetzt?

        Was passiert, wenn Du die URL
        http://www.example.org/autor/?go=vita (example.org durch Deinen Server ersetzen)
        im Browser in die Adreßzeile eingibst?

        cu,
        Andreas

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. hi,

          Was passiert, wenn Du die URL
          http://www.example.org/autor/?go=vita (example.org durch Deinen Server ersetzen)
          im Browser in die Adreßzeile eingibst?

          das klappt einwandfrei - da komme ich wunderbar an die entsprechende seite ran... ?

          meine htaccess sieht so aus:

          AddType application/x-httpd-php .php .php4 .html .htm

          RewriteEngine on
          Options +FollowSymLinks
          RewriteBase /
          RewriteRule ^/autor/(.*).html$  /autor/?go=$1
          #RewriteRule ^(.*).html$ $1.php

          grüße,
          michael

          1. Hallo,

            meine htaccess sieht so aus:

            AddType application/x-httpd-php .php .php4 .html .htm

            RewriteEngine on
            Options +FollowSymLinks
            RewriteBase /

            RewriteBase /autor

            RewriteRule ^/autor/(.*).html$  /autor/?go=$1

            eventuell so (da ich annehmen, dass du den ?go=xxx mit einem CGI oder PHP script machst):
            RewriteRule ^autor/(.*).html$  /cgi-bin/dingsda.cgi?go=$1

            HTH

            Grüße
            Thomas

          2. hi,

            RewriteBase /
            RewriteRule ^/autor/(.*).html$  /autor/?go=$1

            jetzt bist du ja doppelt am moppeln, wenn du als RewriteBase einen slash verlangst, und dann am anfang der Rule auch noch mal einen forderst.

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      2. Hallo,

        Dazu habe mir folgende RewriteRule gebastelt:
        RewriteRule ^autor/(.*).html$  autor/?go=$1

        Warum läßt Du bei der RewriteRule die / am Anfang der beiden URL-Teile weg?

        ich hab die beiden / jetzt mal eingebaut:
        RewriteRule ^/autor/(.*).html$  /autor/?go=$1

        bringt aber noch immer nix - ausser 404 ?

        Ich kann dir nicht sagen ob deine Regel richtig sind, aber ...

        Wo definierst du diese Angaben?
        Im httpd.conf oder in einer .htaccess-Datei?
        Hast du "RewriteEngine On" vor "RewriteRule" auch gesetzt?

        Wenn deine URL nicht direkt zu einer pysischen Adresse führt (z.B. wenn deine URL auf ein Alias basiert) muss du auch (nach "RewriteEngine" aber vor "RewriteRule"  noch auch "RewriteBase   /xyz" bestimmen.
        Machst du diese Angaben in einer .htaccess muss du zusätzlich "Options FollowSymLinks" auch setzen (wenn der Serveradmin dies nicht erlaubt [d.h. es muss zumindest ein "AllowOverride Options" für dein Root-Verzeichniss gesetzt sein), kannst du mod_rewrite nicht nützen!)

        Eventuell muss du noch vor "RewriteRule" auch "RewriteCond %{ QUERY_STRING}" setzen.

        Grüße
        Thomas