2016-06-03 10 views
1

Dies ist die Struktur meiner Website ist:?Rewrite URL zu verstecken bekommen = in .htaccess

website.com/events/beachparty?date=1224 
website.com/events/poolparty?date=0101 
website.com/events/boatparty?date=1105 

Es gibt viele verschiedene Seiten von denen alle Ich mag würde auf die get-Funktion nutzen.

ich die URL mit .htaccess umschreiben will, so dass sie wie folgt geladen werden kann:

website.com/events/beachparty/1224 
website.com/events/poolparty/0101 
website.com/events/boatparty/1105 

Ist dies möglich, ohne dass für jede Seite eine separate Regel erstellen zu müssen?

Vielen Dank im Voraus!

Antwort

1

Ist dies möglich, ohne für jede Seite eine separate Regel erstellen zu müssen?

Ja, können Sie einen regulären Ausdruck verwenden, d.h .:

RewriteEngine On 
RewriteRule ^events/page([0-9]+)/([0-9]+)/?$ /events/page$1?date=$2 [L] 

Die oben wird neu schreiben:

www.yoursite.com/events/page99/123 

zu

www.yoursite.com/events/page99?date=123 

Anmerkungen:

  1. ([0-9]+) wird übereinstimmen 1 oder mehr (+) Ziffern
  2. Die letzte Schrägstrich /?
  3. $ bedeutet das Ende der Zeile ist optional (URL)
  4. [L] = Zuletzt wird Apache die Verarbeitung weiterer Regeln stoppen

aktualisieren basierend auf Ihre Kommentare:

RewriteEngine On 
RewriteRule ^events/([0-9a-zA-Z]+)/([0-9]+)/?$ /events/$1.php?date=$2 [L] 
RewriteRule ^events/([0-9a-zA-Z]+)/?$ /events/$1.php [L] 

[0-9a-zA-Z] - wird von a zu z oder A zu Z, 1 oder mehrmals

+0

Danke für Ihre Antwort! Es gibt jedoch ein kleines Problem. Ich habe 'page1' usw. als Beispiel verwendet. Die Seiten haben unterschiedliche Namen ohne Zahlen. Wäre da eine Lösung? Danke, – Jexon

+0

Bitte aktualisieren Sie Ihre Frage mit mehr Beispielen –

+0

Ich habe die Frage mit einem besseren Beispiel für die Namen der Seite geändert. Danke nochmal – Jexon

-2

versuchen, jede Ziffer oder einen Buchstaben entsprechen. ..

RewriteEngine On 
RewriteRule ^events/beachparty/([0-9]+)/?$ /events/beachparty?date=$1 [L] 
RewriteRule ^events/poolparty/([0-9]+)/?$ /events/beachparty?date=$1 [L] 
RewriteRule ^events/boatparty/([0-9]+)/?$ /events/beachparty?date=$1 [L] 
+0

** "Ist das möglich, ohne eine separate Regel für jede Seite erstellen zu müssen?" ** –

+0

Ja, es ist möglich – thenish