我有以下问题。我正在开发一个使用php和Laravel5.0.33的网站。我有一台开发机器和一个web服务器。
现在,我正在通过重写AuthenticatesAndRegistersUsers postRegister方法来拦截注册进程,但是没有成功,因为没有在服务器上执行拦截,在我的本地环境中,所有这些都可以正常工作。
我还在我的die();的postRegister方法上添加了一个AuthController,这个方法覆盖了所提到的特征上的定义,并且永远也没有到达这一行。
\Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers上的原始特征方法:
public function postRegister(Request $request) {
$validator = $this->registrar->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$this->auth->login($this->registrar->create($request->all()));
return redirect($this->redirectPath());
}我在\Project\Http\Controllers\Auth\AuthController上的\Project\Http\Controllers\Auth\AuthController中过度使用的方法:
use AuthenticatesAndRegistersUsers;
//Override of the register process
public function postRegister(\Illuminate\Http\Request $request) {
die ('aqui');
}那么,是什么阻止代码进入我的重写方法呢?在我的本地开发机器和服务器中,php版本都是相同的。
编辑:坏消息--如果我尝试在网站上登录一个用户,登录就不起注册作用了。请求永远不会到达控制器。这使我花了一整天的时间.:在登录时,我还重写了一个方法。
发布于 2016-02-17 19:52:00
因此,错误是由于托管提供者在虚拟主机上做了错误配置,其中所有请求urls都有一个尾斜杠,但是如果完成了POST请求并添加了尾斜杠,则后续重定向将POST请求转换为get请求。在向主机提供商解释了这两天之后,我获得了修改虚拟主机配置的权限,并添加了一条规则以避免重定向POST请求。
这是修复之前的重定向:
# Enforce trailing slash policy
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /es/$1/ [L,R=301]修复后的重定向:
# Enforce trailing slash policy
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /es/$1/ [L,R=301]感谢你的关心和回应。
https://stackoverflow.com/questions/35441395
复制相似问题