RewriteRule
konrad
- webserver
0 MudGuard0 Konrad0 Der Martin0 wahsaga
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
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
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.phpin 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
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
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
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
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.
hi,
RewriteCond %{REQUEST_URI} ^([a-zA-Z]*/.*[wird]./)
RewriteRule ^([a-zA-Z]*/.*[wird]./)[0-9]+/? $1control.phpin 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