请任何人都可以帮助我解决这个问题。
我的路线的网址如下:
http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/http://localhost:8000/profile
我的路线是:
Route::get('/notifications/{id}/read/{redirect_to}', 'NotiController@readAndRedirect');
这将抛出404。
我也尝试了以下方法:
Route::get('/notifications/{id}/read/{redirect_to}', 'NotiController@readAndRedirect')->where('redirect_to', 'some-regular-exp');
但是没有用。
有什么想法要实现吗?
关于, 贾西
答案 0 :(得分:1)
在这里其他人的建议之外,也许考虑考虑代替
http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/http://localhost:8000/profile
要使路线看起来像这样:
http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/profile
然后在处理通知之后在代码中将http://localhost:8000/
部分放在前面。通常,您不希望重定向到完全不同的主机(我会假设),并且它可能是安全漏洞(CSRF等)。
答案 1 :(得分:0)
看看urlencode。
这是因为您的URL中不能包含特殊字符。
答案 2 :(得分:0)
您应始终urlencode
个放在URL中的字符串。否则,诸如/
或?
之类的字符可能会破坏您的网址。
echo 'http://localhost:8000/notifications/e343ec2f-9e3d-08df90e7030b/read/' . urlencode('http://localhost:8000/profile');