【问题标题】:Laravel return 302 in some machine - browserLaravel 在某些机器上返回 302 - 浏览器
【发布时间】:2016-04-23 18:38:50
【问题描述】:

如果打开此网址,我的应用程序中有一个奇怪的行为

http://example.com/Pd/Country/1

在某些机器和浏览器中,我得到了预期的结果,响应代码是 200 其他机器返回 302

在我的routes

Route::group(array('prefix' => 'Pd'), function() {
   Route::get('Country/{id}','CountryController@getAll');
});

更新 我发现问题是会话没有在某些机器和浏览器中持续存在,我有一些建议可以在 Session::push('keyvalue',$keyvalue ); 之后添加 Session::save(); 但仍然无法正常工作

【问题讨论】:

  • 查看服务器日志
  • @ImtiazPabel 感谢您的建议,我发现问题是会话未在某些机器和浏览器中持续存在,我有一些建议可以在 Session::push('keyvalue',$keyvalue ); 之后添加 Session::save(); 但无法正常工作
  • 如果您添加CountryController@getAll 的代码可能会有所帮助,这样我们就可以看到路线之外发生了什么。
  • @JamesO'Neill 现在问题出在 session 上,在 AuthController 中,我将 session 设置为 Session::push('keyvalue',$keyvalue ); ,如果我尝试将值设为 $keyvalue = Session::get('keyvalue');,它会给出 空
  • 如果'keyvalue' 是为了保存id 路由参数的值,那么您可能应该使用Session::put() 而不是Session::push()

标签: php laravel laravel-4 routes


【解决方案1】:

真正的问题

网址不同,即:在example.com 上设置的会话和在未设置会话的http://www.example.com/ 上完成的下一个请求。

解决方案

我必须更改我的 .htaccess 文件,以便将用户类型 www.example.comexample.comhttp://example.com/ 更改为 http://www.example.com/

Options -MultiViews
RewriteEngine On

# remove index.php
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=302,NC,NE]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301,L,NE]

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

【讨论】:

    猜你喜欢
    • 2015-05-15
    • 2011-04-13
    • 1970-01-01
    • 2015-10-04
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多