【问题标题】:laravel 4 url redirect cachelaravel 4 url​​ 重定向缓存
【发布时间】:2015-06-04 09:29:47
【问题描述】:

在我的应用中,Home 是默认的 Controller 集。 如果未设置特定会话变量,我将有一个主控制器重定向到主页。 登录验证后,会为用户创建会话并将我重定向到主页。在主页上,当我单击主页“http://domain/main”的链接时,它会再次将用户重定向到主页。 当我在网址中输入“http://domain/main/”时,它会打开正确的页面。但是“http://domain/main”正在重定向到“http://domain/home”。 当我清除存储中的会话文件并登录时,“http://domain/main”可以工作,但一段时间后它会再次将我重定向到主页。 我相信 laravel 缓存存在问题,因为在我的代码中重定向处理是完美的。

【问题讨论】:

  • index.php 在公共目录中。 home.php 和 main.php 在 app/cotrollers 中。在 main.php 中,写着 if (Session::get("preferred_app_id") == "") { Redirect::to("home"); }。在第一个 preff_app_id 为空,但如果用户单击 appid 的选择,它会在主页上设置。但是在浏览器中,或者我不知道它在哪里被缓存,每当reqst 出现/main 时,它都会重定向到/home。但是 /main/ 工作正常。
  • if(Session::has('preferred_app_id')){ //随心所欲 }else{ //重定向到家 } 在家中:if(Session::has('preferred_app_id') ){ //重定向到主目录 }
  • 我想我刚刚找到了诀窍。此重定向是浏览器缓存。当我在 chrome 中打开调试器并选择禁用缓存按钮时,一切正常。代码没有问题。

标签: laravel caching url-redirection


【解决方案1】:

有时浏览器会缓存重定向 301 网址。因此,如果您在某些条件下设置会话变量,请在您的代码中。并且您将(301)重定向到会话变量集上的页面,而不是浏览器缓存该重定向。 因此,如果一开始没有设置会话变量,并且您的代码重定向(301)到不同的链接。下次当您在客户端交互中设置变量并设置会话变量时,即使您的浏览器会将您重定向到缓存的链接。为了避免这种情况,您必须将重定向 http 代码传递给 laravel 中的 redirectto('location url','302') 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 2015-03-28
    • 2013-11-19
    • 2014-11-18
    • 2013-09-03
    • 2013-12-25
    • 1970-01-01
    相关资源
    最近更新 更多