Was bedeutet das genau?

Alice

Erfahrenes Mitglied
Hallo. :)

Was ist der Unterschied zwischen:

'Alte-Seite\.php$' => 'Neue-Seite.html'

und

'^Alte-Seite\.php$' => 'Neue-Seite.html'

****?

Was bewirkt das ^ hier?
 
^ steht für den Zeilenanfang (nicht zu verwechseln mit „^“ bei der Zeichenauswahl mittels „[“ und „]“).

Ich habe folgendes gemacht:

'Alte-Seite1\.php$' => 'Neue-Seite1.html'
'Alte-Seite2\.php$' => 'Neue-Seite2.html'
'Alte-Seite3\.php$' => 'Neue-Seite3.html'

Das Problem ist das irgendwie die Seiten vermischt wurden. Es kam eine Fehlermeldung das die Datei nicht auf dem Server wäre usw.

Alte-Alte-Seite2.php würde es nicht geben.

Dann habe ich es so gemacht:

'^Alte-Seite1\.php$' => 'Neue-Seite1.html'
'^Alte-Seite2\.php$' => 'Neue-Seite2.html'
'^Alte-Seite3\.php$' => 'Neue-Seite3.html'

Und so geht es.

Aber ehrlich gesagt verstehe ich nicht warum.
 
Regex Tutorial von Daniel Sauder hat gesagt.:
Anfangs- und Endezeichen
Stell dir vor, du willst ein Datum prüfen, sagen wir mit 1\.3\.2004 Und diesen Ausdruck lässt du auf 11.3.2004 los. Was kommt raus? Dein Ausdruck wird dir melden, dass er trifft. Ist ja auch irgendwo klar, schließlich steht, wenn man eine Eins weglässt, dein Datum da. Du willst aber, dass das gesamte Datum wie deins aussieht? Gibt\'s da nicht was von Ratiodingsbums? Doch gibts: ^1\.3\.2004$ Dieses Dach am Anfang sagt: Treffe nur, wenn hier der zu durchsuchende String anfängt. Und das Dollarzeichen steht für: Treffe nur, wenn genau hier der zu durchsuchende String endet.

Selbstverständlich kann man beide auch einzeln einsetzen; Als Beispiel schauen wir uns zwei reguläre Ausdrücke an: Der erste trifft auf einen String, der mit einer Zahl endet. Der zweite trifft auf einen String, der mit einer öffnenden Klammer beginnt. Dabei benutzen wir die oben angegebene Maskierung für die Klammer. \d$
^\(

Reguläre Ausdrücke - Anfangs- und Endezeichen
 
Sprich:
^ steht für Anfangszeichen
$ steht für das Endzeichen

Was würdest du mir denn empfehlen timestamp?

Für mich als laien klingt es so als wäre es mit ^ und $ besser da genau damit genau aufgezeigt wird was umgewandelt werden soll.
 
Empfehlen kann man da natürlich nichts, weil es halt immer auf die Situation ankommt. Schreibe es dir so zurecht dass es deinen Ansprüchen gerecht wird.
 
Es soll doch nur Funktionieren. :D

Ich stell mal meine Frage etwas anders:
Hat es irgendwelche Vorteile oder Nachteile es in so einem Format umzuschreiben? Damit meine ich nicht das Seo sondern die technischen Aspekte.

'^Alte-Seite1\.php$' => 'Neue-Seite1.html'
'^Alte-Seite2\.php$' => 'Neue-Seite2.html'
'^Alte-Seite3\.php$' => 'Neue-Seite3.html'

Ich möchte eigentlich nur verstehen was der genaue unterschied zwischen den zwei verschiedenen Schreibweisen ist.

'Alte-Seite\.php$' => 'Neue-Seite.html'

und

'^Alte-Seite\.php$' => 'Neue-Seite.html'

Es muss doch einen logischen Unterschied geben? Vielleicht ist das eine sicherer, schneller oder was weiss ich was.
 
Der logische Unterschied liegt ganz einfach darin, dass der erste Reguläre Ausdruck auch ALTEALTEALTEALTE123123123123blablafoobarAlte-Seite.php auf Neue-Seite.html umleitet, während der andere nur Alte-Seite.php umleitet.
 
Sei mir nicht böse aber ich habe es immer noch nicht ganz verstanden. :D

Verstanden schon aber welches macht was?

Ich möchte alle URLs die ich eintrage individuell benutzen. Sprich: Keine URL soll etwas mit einer anderen URL zutun haben.

Wäre echt super nett von dir wenn du dein Beispeil noch etwas erweitern könntest im Form von:

Aus:

'^Alte-Seite1\.php$' => 'Neue-Seite1.html'
'^Alte-Seite2\.php$' => 'Neue-Seite2.html'
'^Alte-Seite3\.php$' => 'Neue-Seite3.html'

Wird:

...

Aus:

'Alte-Seite1\.php$' => 'Neue-Seite1.html'
'Alte-Seite2\.php$' => 'Neue-Seite2.html'
'Alte-Seite3\.php$' => 'Neue-Seite3.html'

Wird:

...
 
Alles wird zu Neue-Seite1/2/3.html. Du kannst deine Regulärenausdrücke z.B. hier testen, dann siehst du was alles gefunden wird ;) Sonst einfach mal "regex tester" bei google eintippern.
 

Neue Beiträge

Zurück