Seite 3 von 4

schnellsuche

Verfasst: 18.12.2005 18:06
von entekross
hier sieht der ganze Spaß so aus...

in der htaccess hab ich jetzt das hier gemacht:
RewriteRule ^schnellsuche-(.+)-([0-9]+)\.html$ /schnellsuche.php?$1&term=$2 [L] :?:

und in der schnellsuche.php
bei codeurl...
$codeurllseitezahl= "schnellsuche-$term";
vorher so:
$codeurllseitezahl= "schnellsuche.php?$seitennummer&term=$term";

Verfasst: 18.12.2005 18:07
von Bob
Obwohl ich jetzt noch die schnellsuche umbauen muss ?

Überall da wo eben anch außen ein dynamischer Link entsteht. Nur der Link, welcher sich hinter einer Suche versteckt, den sehen ja die Suchmaschinen nicht. Das ist dann also ehr für den Benutzer.

Grüße
Robert

besucher..

Verfasst: 18.12.2005 18:10
von entekross
ich weiss, aber das Problem ist die schnellsuche nutz auch die funktion.inc wenn mehrere Suchergebnisse das sind.. wegen der codeurlseitezahl.. also mus sich es gezwungenermaßen machen, da der Spaß sonst nicht funktioniert und fehlerseite bei den suchseiten gezeigt wird..

Verfasst: 18.12.2005 18:12
von Bob
Ja, nur

hier sieht der ganze Spaß so aus...

in der htaccess hab ich jetzt das hier gemacht:
RewriteRule ^schnellsuche-(.+)-([0-9]+)\.html$ /schnellsuche.php?$1&term=$2 [L]

ist ein wenig hinten durcheinander gekommen:

Es sollte wohl ehr
/schnellsuche.php?term=$1&seitennummer=$2
sein, wenn die URL in der Form http://www.pagesuche.de/schnellsuche-auto-7.html aufgebaut ist.

japp

Verfasst: 18.12.2005 18:16
von entekross
:)

da magst Du recht haben und hast Du auch :))

Ich würde mal sagen, Du hast jetzt endlich Ruhe vor mir ;)

Hoffe hab Dich nicht allzu doll genervt ?

Wünsch Dir nette Feiertage und ich werd mal nachher ein wenig PayPal spenden :roll:

Verfasst: 25.01.2006 10:23
von greppy
Hallo,

ich bin blutiger Anfänger was mod_rewrite betrifft und ich benutze das gleiche Webkatalog-Script wie entekross.

Hier mal der entsprechende Teil aus der index.php

Code: Alles auswählen

"?rubrik=$date[nummer].html",


hier die htaccess:

Code: Alles auswählen

RewriteEngine on
RewriteRule ^start.php?rubrik=([^.]+)\.html$ /start.php?rubrik=$1 [L]


Wenn ich nun eine Rubrik auswähle, wird diese anhand der Regel nicht korrekt umgesetzt.
Die komplete URL lautet:
http://www.greppy.de/start.php?rubrik=EaEz9nNhZ6

Danke für eure Hilfe
greppy

Verfasst: 25.01.2006 16:01
von Bob
:shock: und was ist dann der Sinn deiner Anpassung in start.php?rubrik=EaEz9nNhZ6.html? Damit existiert ja noch immer der QueryString :?
Gerade das wird doch normal versucht zu ändern?

Verfasst: 25.01.2006 16:59
von greppy
Hallo Caterham,

das ist richtig. Wie schon geschrieben, bin ich noch Anfänger und möchte auch verstehen, was mod_rewrite bewirkt. Deswegen taste ich mich erst einmal step by step heran. Ich hatte bereits versucht anhand eures threads umfangreichere Anpassungen zu machen. Leider haben auch die nicht gefruchtet. Daher wollte ich erst einmal eine einfache Regel erstellen, um zu testen ob diese funktioniert, was sie ja leider nicht getan hat.
Kannst du mir sagen, wo der Fehler liegt?

Vielen Dank
Gruß greppy

Verfasst: 25.01.2006 20:02
von greppy
Ich habs nochmal selbst versucht und das Script wie folgt modifiziert:

index.php:

Code: Alles auswählen

"/$date[nummer].html",


htaccess:

Code: Alles auswählen

RewriteRule ^([^+]+)\.html$ /start.php?rubrik=$1 [NC] [L]


Und siehe da - es funktioniert :D

re greepy

Verfasst: 25.01.2006 21:14
von entekross
Hallo nochmal ;)

Also ich würde erstmal die Datenbank anpassen, oder eher die Datenbank Abfrage in deinem Fall ?

Weil was soll eine sagen wir mal xyzu765er4.html ?
Dazu müsstest du die Abfrage nicht des Kategorienamens machen sondern der Kategorie ID.. sagen wir mal xyzu765er4 ist in der Datenbank 2.

Abgesehen davon habe ich mich bevor mir der beste Caterham geholfen hat den Webkatalog bereits monatelang modifiziert un dmich reingearbeitet...

weil wenn du die Kategorien jetzt umarbeitest, dann musst Du später alle bisherigen Einträge später neu zuordnen. Also die Ordnung fängt am Anfang an und nicht am Ende.

Verfasst: 26.01.2006 00:49
von Bob
Deswegen taste ich mich erst einmal step by step heran.
Mit dem QueryString hast du dir das ganze nur erschwert, denn auf diesen kannst du nicht in der RwriteRule (sondern nur über eine Condition) zugreifen, vgl. :faq: Nr. 7.1
Der Request ist bereits soweit fortgeschritten, dass der QueryString lange Zeit vorher abgehangen und in die Variable QUERY_STRING abgelegt wurde. Der Request ist in .htaccess-Dateien sogar bereits so weit, dass nicht mehr auf eine lokale URL /abcd, sondern nur noch auf einen filepath abc zugegriffen werden kann.

^([^+]+)\.html$
Warum schließt du das +-Zeichen aus? Eigentlich sollte vielmehr der Punkt ausgeschlossen werden, um RegEx-Backtracks zu vermeiden. Flags werden normal durch Komma voneinander getrennt:

Code: Alles auswählen

RewriteRule ^([^.]+)\.html$ /start.php?rubrik=$1 [NC,L]


Grüße
Robert

Verfasst: 20.02.2006 15:55
von hanibal the canibal
Hallo Zusammen,

Auch ich habe dasselbe Webkatalog-Script. Diese Diskussion und Hilfestellung habe ich aufmerksam verfolgt und alles so gemacht, wie beschrieben - Allerdings scheint sich irgendwo noch ein verflixter kleiner Fehler bei mir eingeschlichen zu haben...

Beispiel: Rubrik "Immobilien"

Standard: start.php?&rubrik=Immobilien

So wird die Seite auch beim Aufruf der Homepage angezeit.

Die selbe Rubrik lässt sich auch als .html aufrufen, das schaut dann so aus: www.ihre-domain.de/rubrik-immobilien.html

Angezeigt wird mir aber immer die erste Version *grübel*

Meine .htaccess:

RewriteEngine on
RewriteRule ^rubrik-([^.]+)\.html$ /start.php?rubrik=$1 [L]
RewriteRule ^anzeige-(.+)-([0-9]+)\.html$ /anzeige.php?rubrik=$1&treffzahl=$2 [L]
RewriteRule ^anzeige-([^.]+)\.html$ /anzeige.php?rubrik=$1 [L]
RewriteRule ^([0-9]+)-bewerten\.html$ /bewerten.php?nummer=$1 [L]
RewriteRule ^all-rubrik-(.+)-([0-9]+)\.html$ /rubrik_start.php?rubrik=$1&treffzahl=$2 [L]
RewriteRule ^all-rubrik-([^.]+)\.html$ /rubrik_start.php?rubrik=$1 [L]
RewriteRule ^([^-]+)-(.+)-([0-9]+)\.html$ /$1.php?rubrik=$1&treffzahl=$2 [L]
RewriteRule ^([^-]+)-([^.]+)\.html$ /$1.php?rubrik=$1 [L]

Fazit: Dem Grunde nach funktioniert also Darstellung als .html - Aber warum werden mit die Rubriken nicht permanent als .html angezeigt???

Ich würde mich sehr über eine Hilfe freuen - Hoffe das ich es verständlich geschildert habe.

Greetz

hanibal the canibal

Verfasst: 20.02.2006 16:27
von Bob
Fazit: Dem Grunde nach funktioniert also Darstellung als .html - Aber warum werden mit die Rubriken nicht permanent als .html angezeigt???
Da ist irgendwas im Argen, durch Rewriterules wird kein externer Redirect ausgelöst, die URL sollte sich nach Außen hin sichtbar also nicht ändern.

Wird denn ein 301 oder 302 Redirect gesendet? Das kannst du z.B. über http://web-sniffer.net prüfen. Wird auch ein Redirect gesendet, wenn du kurzzeitig die PHP-Datei mal entfernst? Wenn das nicht der Fall ist, verursacht wohl das Script den Redirect.

grüße
Robert

Verfasst: 20.02.2006 18:00
von hanibal the canibal
Da ist irgendwas im Argen, durch Rewriterules wird kein externer Redirect ausgelöst, die URL sollte sich nach Außen hin sichtbar also nicht ändern.


Hmm...ich glaube ich hab mich umständlich ausgedrückt.

Wenn ich mit der Maus über die Hauptrubriken fahre sieht das so aus:
start.php?&rubrik=Immobilien

Aber nach meinen Rules sollte es eigentlich so aussehen:

www.ihre-domain.de/rubrik-immobilien.html

Wenn ich diese Adresse www.ihre-domain.de/rubrik-immobilien.html direkt in den Browser eingebe, ruft er diese auch auf genau so auf

Bei den Unterkategorien funktioniert das, da steht beim drüberfahren und Aufruf:
/anzeige-Kaufen-Verkaufen.html.

An den Rules in der .htaccess kann das doch nicht mehr liegen, oder? :(

Verfasst: 20.02.2006 18:03
von Bob
Wenn ich mit der Maus über die Hauptrubriken fahre sieht das so aus:
start.php?&rubrik=Immobilien

Aber nach meinen Rules sollte es eigentlich so aussehen:

www.ihre-domain.de/rubrik-immobilien.html
Nein, deinen Quelltext kann mod_rewrite nicht ändern, das ist alleinige Sache deines Scripts. Dort musst du ansetzen und die Generierung des Quelltextes/der <a href...>-links ändern.

Wenn ich diese Adresse www.ihre-domain.de/rubrik-immobilien.html direkt in den Browser eingebe, ruft er diese auch auf genau so auf
Genau das ist der Tätigkeitsbereich von mod_rewrite, mehr nicht. Deinen Quelltext kann mod_rewrite nicht ändern, dieser wird in der HTTP-Response gesendet, mod_rewrite agiert aber vorher im HTTP-Request.

grüße
Robert