在请求中有特殊字符时重定向到root - laravel 5

时间:2017-01-11 11:59:40

标签: php forms laravel laravel-5 laravel-routing

这是我的路线档案:

Route::any('target',function(){
    return 'got it!';
});

这是我的表格:

<form method='post' action='example.com/target'>
    <input type='text' name='message' />
    <input type='submit' name='submit' />
</form>

所以我填写message字段并不重要,它应该返回给我got it!
但是当我在url字段中输入message时,无论方法是POST还是GET,无论路径是否存在,我都会被重定向到根(example.com
我在localhost上没有这个问题,但是在共享主机上 感谢

3 个答案:

答案 0 :(得分:1)

检查APP_URL

中的config/app.php env变量

确保一旦投入生产(或任何其他环境),此值将相应更改。

编辑:

同时检查您的操作,使用命名路由和路由('route-name')或网址助手来获取正确的网址。

网址助手:

<form method="post" action="{{ Url::to('/target') }}">

命名路线:

 Route::any('target', function(){
     return 'got it!';
 })->name('target-name');

使用这样的表单操作:

 <form method="post" action="{{ route('target-name') }}">

此外,这是您指定的唯一路线吗?或者是否在您使用目标的位置定义了更多路径?

答案 1 :(得分:1)

将您的操作更改为此action='/target'

答案 2 :(得分:1)

您可以通过两种方式更改代码。

首先改变这样的路线

Route::get('/target', array('as'=>'target_name','uses'=>function(){
       return 'got it!';
}));

之后你可以这样使用

1)<form method="post" action="{{ URL::to('/target') }}">

2)<form method="post" action="{{ URL::route('target_name') }}">

由于

相关问题