2016-03-24 45 views
0

我的laravel 5應用程序使用官方auth框架。在我的家園/流浪環境中,所有工作都很好,但是當我嘗試部署到生產服務器時,auth功能不起作用 - 例如,如果我嘗試註冊新用戶,表單會重定向到自身,而不會在users表中創建條目。Laravel 5 auth - 註冊重定向到自己

Homestead vagrant正在運行nginx,並且生產服務器正在運行Apache 2.4.6(這是我無法控制的東西)。 mod_rewrite的啓用和公共/ htaccess的是如下:

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

我檢查了laravel和Apache日誌和記錄沒有錯誤。

Apache的虛擬主機配置是

<VirtualHost *:80> 
    ServerName example.com 

    ## Vhost docroot 
    DocumentRoot "/var/www/app/public" 


    <Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
    </Directory> 

    ## Logging 
    ErrorLog "/var/log/httpd/laravel_error.log" 
    ServerSignature Off 
    CustomLog "/var/log/httpd/laravel_access.log" combined 
</VirtualHost> 

UPDATE: 我的路由列表從PHP工匠路線的相關章節:列表是:

|  | POST  | login      |     | App\Http\Controllers\Auth\[email protected]     | web,guest | 
|  | GET|HEAD | login      |     | App\Http\Controllers\Auth\[email protected]   | web,guest | 
|  | GET|HEAD | logout      |     | App\Http\Controllers\Auth\[email protected]     | web   | 
|  | POST  | password/email    |     | App\Http\Controllers\Auth\[email protected] | web,guest | 
|  | POST  | password/reset    |     | App\Http\Controllers\Auth\[email protected]    | web,guest | 
|  | GET|HEAD | password/reset/{token?}  |     | App\Http\Controllers\Auth\[email protected]  | web,guest | 
|  | POST  | register      |     | App\Http\Controllers\Auth\[email protected]    | web,guest | 
|  | GET|HEAD | register      |     | App\Http\Controllers\Auth\[email protected] | web,guest | 

和相關部門在routes.php文件看起來像這樣:

Route::group(['middleware' => ['web']], function() { 

    Route::auth(); 
    ... 
} 

回答

0

好的,設法解決它 - 我會在這裏分享答案。

該網站正在運行https,我終於意識到註冊表正在試圖將詳細信息傳遞給導致問題的http路由。

我修改了認證表單,以通過https發佈表單以及所有工作。

+0

這是您的答案中缺少的一些重要信息。很高興你修好了它。 –

1

嘗試將.htaccess文件更新至最新版本(以下)。這可能是URL中的尾部斜槓導致第二次重定向。

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 
+0

Niraj,謝謝 - 試過了,並沒有解決問題。 – SimonH