2017-11-07 4 views
2

Ich möchte nur der privilegierte Benutzer erlaubt eine spezielle Datei zum Download bereit.Laravel Route mit skalierbarer Segmenten Länge

Also ich Config apache2 mit unten, die /data/model/userModel machen kann nicht direkt zugänglich.

Alias /user_model "/data/model/userModel" 
<Directory /data/model/userModel> 
      Order allow,deny 
      Deny from all 
</Directory> 

Während die /data/model/userModel Unterordner haben kann, wie

  • /data/model/userModel/pic/tiny/aaa.png
  • /data/model/userModel/txt/aaa.txt
  • /data/model/userModel/model/0/13/aaa.zip

Dieser Weg ist nur für Datei herunterladen, in der Steuerung Methode, die ich gerade Überprüfen Sie, ob der Benutzer riggen muss ht, um die Datei herunterzuladen. Also versuche ich nur eine Route für diese Pfade zu verwenden. Zum Beispiel

Route::get('user_model/*', '[email protected]_model'); 

Während es nicht funktioniert. Die * in der Route kann nur ein Segment der URL übereinstimmen.

Wie kann ich eine Route Match URL mit skalierbaren Länge von Segmenten. Ich weiß nicht, mein Design der Route ist hier richtig.

+0

Ist das, was Sie suchen: https://stackoverflow.com/questions/34831175/how-do-i-make-a-catch-all-route-in-laravel-5-2 –

+1

Mögliches Duplikat von [Wie mache ich eine Catch-All Route in Laravel 5.2] (https://stackoverflow.com/questions/34831175/how-do-i-make-a-catch-all-route-in-laravel -5-2) –

+0

@NathanHeffley danke. Für mich geht das. –

Antwort

1

Enlighted von How do I make a Catch-All Route in Laravel 5.2 in Nathan Heffley 's Kommentar, ich löse es.

Verwenden Route::get('user_model/{path}', '[email protected]_model')->where('path', '.*'); statt Route::get('user_model/*', '[email protected]_model');.

Hinweis:

  • * in Route::get('user_model/*', '[email protected]_model'); kann nur ein Segment entsprechen.

  • * in Route::get('user_model/{path}', '[email protected]_model')->where('path', '.*'); können mehrere Segmente übereinstimmen.

+1

Vergiss nicht, dass du deine eigene Antwort annehmen kannst. –