# Was bedeutet das genau?



## Alice (3. Januar 2011)

Hallo. 

Was ist der Unterschied zwischen:

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

und

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

****?

Was bewirkt das ^ hier?


----------



## timestamp (3. Januar 2011)

Schaue dir mal Reguläre Ausdrücke bei Google an 
Oder gleich dies hier: Klick Mich


----------



## Alice (3. Januar 2011)

> ^ 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.


----------



## timestamp (3. Januar 2011)

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


----------



## Alice (3. Januar 2011)

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.


----------



## timestamp (3. Januar 2011)

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.


----------



## Alice (3. Januar 2011)

Es soll doch nur Funktionieren. 

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.


----------



## timestamp (3. Januar 2011)

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.


----------



## Alice (3. Januar 2011)

Sei mir nicht böse aber ich habe es immer noch nicht ganz verstanden. 

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:

...


----------



## timestamp (4. Januar 2011)

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.


----------



## Alice (4. Januar 2011)

Ich verstehe es nicht.


----------

