Hübsche URLs mit .htaccess

8

Ich habe eine URL http://localhost/index.php?user=1 . Wenn ich diese .htaccess Datei hinzufüge

%Vor%

Ich darf jetzt http://localhost/user/1 link verwenden. Aber wie wäre es mit http://localhost/index.php?user=1&action=update wie kann ich es in http://localhost/user/1/update machen?

Auch wie kann ich diese URL http://localhost/user/add machen? Vielen Dank. Entschuldigung, ich bin relativ neu in .htaccess .

    
Port 8080 01.08.2014, 12:58
quelle

8 Antworten

1

Danke für die Idee @denoise und @mogosselin. Auch mit @stslavik, um auf einige Nachteile meines Code-Beispiels hinzuweisen.

So mache ich es:

%Vor%

mit var_dump($_GET); auf dem Link localhost/user/1234/update habe ich

%Vor%

während localhost/user/add

%Vor%

was mein Ziel ist. Ich werde einfach nur andere Sachen unter der Haube mit PHP machen.

    
Port 8080 01.08.2014, 13:47
quelle
5

Du kannst so etwas schreiben:

%Vor%     
denoise 01.08.2014 13:12
quelle
4

Wenn Sie möchten

http://www.yourwebsite.com/index.php?user=1&action=update

in

http://www.yourwebsite.com/user/1/update

Sie könnten

verwenden %Vor%

Um die Parameter in PHP zu sehen:

%Vor%
  • Die Klammern im .htaccess sind Gruppen, die Sie später aufrufen können. mit $ 1, $ 2 usw.
  • Die erste Gruppe, die ich hinzugefügt habe ([0-9] *), bedeutet, dass dies der Fall ist bekomme irgendwelche Nummern (1, 34, etc.).
  • Die zweite Gruppe bedeutet irgendwelche Charaktere (a, abc, aktualisieren usw.).

Das ist meiner Meinung nach ein bisschen sauberer und sicherer als (. *), was im Grunde bedeutet, dass fast alles akzeptiert wird.

    
mogosselin 01.08.2014 13:15
quelle
2

Da du dies mit PHP getaggt hast, füge ich ein wenig Perspektive von dem hinzu, was ich getan habe, und es kann dir helfen oder auch nicht.

Sie können natürlich nur in .htaccess schreiben, wobei Sie auf die Reihenfolge achten. Nehmen wir zum Beispiel an, Sie hätten:

%Vor%

Dann sollte es, nach Erhalt

http://localhost/user/1/update

gehe zu

http://localhost/index.php?user=&action=update

und nicht

http://localhost/index.php?user=

Nun, was ich stattdessen getan habe, war alles nach index.php?q=

zu schieben %Vor%

Dann habe ich index.php verwendet, um zu verarbeiten, wie die Abfrage aufgeteilt wurde. Nehmen wir an, jemand gibt

ein

http://www.example.com/user/18239810/update

Das würde nach

gehen

http://www.example.com/index.php?q=user/18239810/update

Von dort explodieren Sie die Abfragezeichenfolge entlang des ersten / , um user und 18239810/update zu geben.

Das würde mir sagen, dass ich 18239810/update an den user Controller übergeben muss. In diesem Controller explodiere ich das Argument erneut in die Benutzer-ID und den Befehl, und ich kann den Befehl einschalten, um zu sagen, wie die Seite geladen wird, wobei die Benutzer-ID als Argument an die Funktion update übergeben wird.

Sehr schnell und schmutzig Beispiel (index.php):

%Vor%

Das bedeutet natürlich, dass Konstruktoren alle ein String-Argument verwenden müssen, das nach akzeptablen Werten analysiert wird. Sie können dies mit Explodes und Switch-Anweisungen tun, die immer auf die Standard-Startseite zurückgesetzt werden, um einen unberechtigten Zugriff aufgrund von Zufallsraten zu verhindern.

    
stslavik 01.08.2014 13:24
quelle
1

Für /user/add müssen Sie eine separate Regel machen, weil Sie keinen "mittleren Parameter" haben. Also:

%Vor%

Sie können dann zusätzliche Regeln für URLs festlegen, die zusätzliche Parameter enthalten:

%Vor%

Damit können Sie Aktionen für vorhandene Benutzer ausführen. Z.B. /user/1/update

    
Kinnectus 01.08.2014 13:08
quelle
0

Ein einfacher Weg besteht darin, nur eine Variable an index.php wie folgt zu übergeben

%Vor%

und in deiner index.php Datei machst du das

%Vor%

das funktioniert in allen Fällen, wenn Sie versuchen, viele Variablen zu übergeben, funktioniert es nicht in der Wase, wenn Sie etwas wie

tun %Vor%

Die letzte Variable nimmt immer den Wert add/12/54/54/66

    
Khalid 01.08.2014 13:15
quelle
0

Es ist einfach das einfach ausprobieren!

%Vor%

Das ist es !!

    
Gavin 01.08.2014 13:37
quelle
-1

Probieren Sie es aus, es ist sehr einfach:

%Vor%     
Hemal Halari 18.04.2016 11:28
quelle

Tags und Links