Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Simple Regel - funktioniert nicht?!

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
dahead
PostRank 5
PostRank 5
Beiträge: 206
Registriert: 23.04.2009, 08:07

Beitrag von dahead » 22.09.2010, 13:03

Hi Leute,

ich habe dynamisch generierte URLs, die folgendermaßen aufgebaut werden:

www.example.org/index.php?maincat=abc&s ... rticle=hij

Daraus will ich natürlich folgendes per mod_rewrite machen:

www.example.org/folder/abc/def/hij/


Nun will ich Schritt für Schritt das Rewriting festlegen.

www.example.org/index.php?maincat=abc

soll werden zu

www.example.org/folder/abc/

Code: Alles auswählen

RewriteRule ^/folder/(.*)/$ /index.php?maincat=$1
Mit diesem Code habe ich es probiert. Wenn ich in die Adresszeile meines Browsers www.example.org/folder/abc/ eingebe, funktioniert es nicht.

ModRewrite an sich ist an, in der .htaccess wird die Domain ohne www -> mit www weitergeleitet, das funktioniert auch.

Hier die gesamte .htaccess:

Code: Alles auswählen

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.org$
RewriteRule ^(.*)$ http://www.example.org/$1 [R=301,L]

RewriteRule ^/folder/(.*)/$ /index.php?maincat=$1
Ich weiß nicht, was ich falsch mache. Ist doch noch ziemilch simpel :-?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Rizzo
PostRank 2
PostRank 2
Beiträge: 45
Registriert: 31.08.2010, 12:16

Beitrag von Rizzo » 22.09.2010, 13:14

Deine RewriteRule ...

Code: Alles auswählen

RewriteRule ^/folder/(.*)$ /index.php?maincat=$1
.. hat ein kleinen Schönheitsfehler.
Und zwar müssen im Pattern zB.: '.' oder '/' immer mit '\' negiert werden damit sie als solches gefunden werden können. Sprich deine Zeile sollte dann so aussehen..

Code: Alles auswählen

RewriteRule ^\/folder\/(.*)$ /index.php?maincat=$1
- Anhang -
RewriteRule PATTERN SUBSTITUTION [FLAGS]

dahead
PostRank 5
PostRank 5
Beiträge: 206
Registriert: 23.04.2009, 08:07

Beitrag von dahead » 22.09.2010, 13:26

Danke für die schnelle Antwort. Das ändert leider nichts.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 22.09.2010, 14:55

Rizzo hat geschrieben:.. hat ein kleinen Schönheitsfehler.
Und zwar müssen im Pattern zB.: '.' oder '/' immer mit '\' negiert werden
Wo hast Du denn den Unfug her? Der Punkt kann (sollte), muss aber nicht. Der Slash braucht es gar nicht. Zudem: Wenn schon, dann sollte der "escaped" werden und nicht "negiert", denn das geht mit dem "!" und ist was ganz anderes.
- Anhang -
Quoting Special Characters https://httpsd.apache.org/docs/2.2/mod/ ... ml#quoting

@dahead

Code: Alles auswählen

RewriteRule ^/folder/(.*)/$
Lass mal den ersten Slash vor "folder" weg, bei der Weiterleitung darüber hast Du ihn ja auch nicht.

Rizzo
PostRank 2
PostRank 2
Beiträge: 45
Registriert: 31.08.2010, 12:16

Beitrag von Rizzo » 22.09.2010, 15:26

Synonym hat geschrieben:Wo hast Du denn den Unfug her? Der Punkt kann, muss aber nicht. Der Slash braucht es gar nicht.
Sorry für die Fehlinformation von mir... :o
Da ich immer mal gerne in anderen RegEx Systemen arbeite und da zum Beispiel auch mal das '/' als modifier herhalten muss, hab ich mir angewöhnt das '\' davor zu knallen. Das es bei mod_rewrite nicht zutrifft, weis ich nun durch dich ja auch :P

Zu dem Quellcode, probiers mal mit Synonym´s Idee. Eine Anmerkung aber (die nun aber stimmen sollte). Das '$' im pattern bedeutet das letzte Zeichen ein '/' ist und nichts weiter dahinter kommen darf. Entweder man lässt das '$' Zeichen weg oder macht noch ein ' .* ' Zeichenpaar dazwischen. zB.:

Code: Alles auswählen

RewriteRule ^folder/(.*)/     /index.php?maincat=$1
Gruß Rizzo

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag