2015-07-21 36 views
0

我想通過URL作爲我的路線的一部分: 即通過URL作爲PARAM在Laravel 4路

http://example.com/param1/url_param

http://example.com/param1/?url_param=http://example1.com/56474

Route::get('/{param1}/{url_param?}', function($param1, $url_param){}); 

我在Ubuntu上,nginx,Laravel 4.

+1

請您詳細說明問題嗎?你的兩種方法都很好。如果第一個URL看起來像這樣:http://example.com/param1/http:// example1.com/56474,那麼您發佈的路線將會起作用。如果你訪問與'支持::輸入(「url_param」)的'url_param'第二個將工作'(當然你需要刪除'{url_param?}'路由定義。 – Bogdan

+0

在第一個例子如果鏈接是http://example.com/param1/http://example1.com它會被破壞並重定向到主頁路線 – dflow

+0

您可能還想要編碼url參數 – askilondz

回答

0

您不應該通過該URL,而不通過參數編碼它。此外,由於您在URL('/')中具有段定界符char來定義協議,因此不能像第一個示例中那樣傳遞它(將其作爲URL的一部分附加)。

雖然我建議您使用url_encode()對URL進行編碼,但第二個示例是正確的。

另一種方法是使用B64對URL進行編碼,生成一個可作爲URL段附加的字符串。喜歡的東西:

$URLToBeAppended = base64_encode('http://example1.com/564740'); 

而且現在的最終路徑將類似於:

http://example.com/param1/aHR0cDovL2V4YW1wbGUxLmNvbS81NjQ3NDA=

在負責處理你可以解碼那個B64字符串路線控制器。