konrad: RewriteRule

Hallo zusammen,

also ich habe zwar gesehen, dass es schon viele Beiträge zu diesem Thema gibt, doch scheint nichts bei mir zu funktionieren.

Eigentlich wollte ich ganz einfach aus die URL

http://www.beispiel.de/url/die/angezeigt/wird/123

auf

http://www.beispiel.de/url/die/angezeigt/wird/control.php

umleiten. Das wollte ich mit rewrite machen, da es sonst einige 404 Einträge in den Logs gibt...

Jedenfalls habe ich folgendes in die htaccess datei geschrieben

RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
RewriteRule ^([a-zA-Z]*/.*[wird]./)[0-9]+/?  $1control.php

und es wird immer nur angezeigt, dass es die Seite nicht gibt. Aufrufen kann ich sie aber..
Und mit http://pcre.nophia.de/evaluate habe ich die Regexp auch getestet und sie liefern mir genau die richtigen matches. Kann mir jemand sagen was ich falsch mache? Ich versteh es einfach nicht!

Danke!
Konrad

  1. Hi,

    Eigentlich wollte ich ganz einfach aus die URL
    http://www.beispiel.de/url/die/angezeigt/wird/123
    auf
    http://www.beispiel.de/url/die/angezeigt/wird/control.php
    umleiten.

    Du arbeitest also für die Firma Verio.

    Das wollte ich mit rewrite machen, da es sonst einige 404 Einträge in den Logs gibt...
    Jedenfalls habe ich folgendes in die htaccess datei geschrieben

    RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
    RewriteRule ^([a-zA-Z]*/.*[wird]./)[0-9]+/?  $1control.php

    in welchem Verzeichnis liegt die?
    Wie ist RewriteBase gesetzt?

    und es wird immer nur angezeigt, dass es die Seite nicht gibt. Aufrufen kann ich sie aber..

    Welche der beiden Seiten? Die mit der Original-URL oder die mit der umgeschriebenen?

    Und mit http://pcre.nophia.de/evaluate habe ich die Regexp auch getestet und sie liefern mir genau die richtigen matches. Kann mir jemand sagen was ich falsch mache? Ich versteh es einfach nicht!

    Was sagt das Rewrite-Log?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hallo Andreas,

    Du arbeitest also für die Firma Verio.

    Von der Firma habe ich nie was gehört :-) ???

    RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
    RewriteRule ^([a-zA-Z]*/.*[wird]./)[0-9]+/?  $1control.php

    in welchem Verzeichnis liegt die?

    Die htaccess liegt in dem Verzeichnis 'wird'
    online habe ich das jetzt schon hinbekommen. Nur Lokal funktioniert es  nicht. Weisst du wie ich den lokalen Apache einrichten muss damit dass funktioniert? LoadModule mod_rewrite ist nicht mehr kommentiert und Option Follow SymbolicLinks ist für den Alias gesetzt... ???

    Wie ist RewriteBase gesetzt?

    Die habe ich jetzt gar nich benutzt ging auch so...

    Die htaccess sieht jetzt übrigens so aus :

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*beispielfolder/)[0-9]+$
    RewriteRule ^.*$ %1controller.php [L]

    und damit funktionierts

    und es wird immer nur angezeigt, dass es die Seite nicht gibt. Aufrufen kann ich sie aber..

    Welche der beiden Seiten? Die mit der Original-URL oder die mit der umgeschriebenen?

    Aufrufen kann ich die Datei control.php  und wenn ich die URL /wird/123 eingebe wird es nicht angezeigt.

    Was sagt das Rewrite-Log?

    habe ich noch nicht benutzt und auch keinen Log gefunden? Muss ich den optional einstellen?
    Gruß,
    Konrad

    1. Hallo Konrad,

      Du arbeitest also für die Firma Verio.
      Von der Firma habe ich nie was gehört :-) ???

      ach, und trotzdem verwendest du deren Domain für deine Beispiele?

      Bitte, für solche Zwecke gibt es extra die internationalen Beispiel-Domains example.com, example.net, example.org, ... Es ist einfach schlechter Stil, willkürlich fremde Domains zu verwenden, die durchaus existieren könnten.

      RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)

      ^
      Dieser Teilausdruck --------------------------------+
      matcht nach meinem Verständnis wahlweise auf _eines_ der Zeichen 'w', 'i', 'r' oder 't', aber nicht auf den String "wird". Ist das wirklich, was du wolltest?

      Ciao,
       Martin

      --
      Idealismus wächst mit der Entfernung zum Problem.
      1. Hi,

        RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
                                                            ^
        Dieser Teilausdruck --------------------------------+
        matcht nach meinem Verständnis wahlweise auf _eines_ der Zeichen 'w', 'i', 'r' oder 't',

        Kommt da Deine Säufernatur durch, daß Du gleich an einen Wirt denkst?

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. Hallo Andreas,

          RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
          Dieser Teilausdruck matcht nach meinem Verständnis wahlweise auf _eines_ der Zeichen 'w', 'i', 'r' oder 't',
          Kommt da Deine Säufernatur durch, daß Du gleich an einen Wirt denkst?

          vielleicht auch das unterschwellige Verlangen nach einem gepflegten Zwiebelrostbraten ...
          Hmm, das gibt mir jetzt aber doch zu denken. Ist es schon so schlimm?
          Oh je ... ;-)

          Schönen Tag noch,
           Martin

          --
          Man gewöhnt sich an allem, sogar am Dativ.
      2. ach, und trotzdem verwendest du deren Domain für deine Beispiele?

        tut mir leid, das war mir nich bewusst.

        Bitte, für solche Zwecke gibt es extra die internationalen Beispiel-Domains example.com, example.net, example.org, ... Es ist einfach schlechter Stil, willkürlich fremde Domains zu verwenden, die durchaus existieren könnten.

        Auch example.net etc hätten für mich existieren können.... ;-)

        RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
                                                            ^
        Dieser Teilausdruck --------------------------------+
        matcht nach meinem Verständnis wahlweise auf _eines_ der Zeichen 'w', 'i', 'r' oder 't', aber nicht auf den String "wird". Ist das wirklich, was du wolltest?

        Das stimmt! Ich habe es jetzt auch auf

        %{REQUEST_URI} ^([a-zA-Z]*/.*wird/)[0-9]+$

        umgeschrieben. Weiß jemand genau was in der Variable REQUEST_URI drinsteht?

        Gruß,
        K.

    2. hi,

      RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
      RewriteRule ^([a-zA-Z]*/.*[wird]./)[0-9]+/?  $1control.php

      in welchem Verzeichnis liegt die?

      Die htaccess liegt in dem Verzeichnis 'wird'

      Warum versuchst du dann erst noch mal, url/die/angezeigt/ davor zu finden?
      Das Verzeichnis wurde doch schon erreicht - sonst könnte deine .htaccess ja gar nicht berücksichtigt werden - also interessiert jetzt nur noch der Teil "unterhalb" davon.

      mod_rewrite "denkt" übrigens genauso - und deshalb schneidet des von dem REQUEST_URI erst mal den Pfad zum aktuellen Verzeichnis ab, bevor es vergleicht.

      Es wird also versucht, "123" mit ^([a-zA-Z]*/.*[wird]./)[0-9]+/? zu vergleichen.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }