【问题标题】:Redirect without telling the browser重定向而不告诉浏览器
【发布时间】:2014-05-30 22:42:54
【问题描述】:

我使用 w3layouts.com 上的模板创建了一个响应速度非常快的网站。 支持所有桌面、java手机、智能手机。

因此,您可以从该网站下载任何模板以查看其工作原理。 它首先查看用户使用的是个人电脑、Java 手机还是智能手机。如果他在电脑上,则将 php 变量 $browser_t 设置为 web,如果用户在移动设备上,则将变量设置为移动设备,如果用户在智能手机上,则将变量设置为智能手机。在模板中有三个文件夹 web、mobile、smartphone。模板 index.php 检查用户设备,然后将特定文件包含在特定文件夹中,即网络、移动设备或智能手机。例如,如果在移动设备上用户请求 www.mysite.com/hello.php,.htacces 文件将转到 index.php,而 index.php 将包括 www.mysite.com/mobile/hello.php。

但我想在我的网站中使用 get 请求,所以我更改了 index.php 文件以发送如下标题:

header('Location: mysite.com/'.$browser_t.'/'.$page_name);

$page_name 是保存 url 的“hello.php”部分的变量。

但问题是我不希望用户知道 url 是如何变化的。那么有没有办法在不告诉用户浏览器页面被重定向的情况下重定向到不同的页面。

【问题讨论】:

  • 您可以创建一个全局 div 并使用 AJAX 在每个请求上刷新该 div。
  • 你为什么想要那个?向用户显示 URL 是一项很好的功能,因此他们可以复制链接并发送它们,并且使用该链接的任何人都将看到相同的结果,而无需添加“在 X 上单击,然后在 Y 上然后在 Z 上”。如果您想隐藏使用 hello.php 的事实,请改用 mod_rewrite:httpd.apache.org/docs/2.2/mod/mod_rewrite.html
  • @HeroFTime 你能告诉这个答案并提供更多解释吗?
  • @user3471510 - 这基本上是通过 ajax 刷新页面。在 标签之后,创建例如一个
    标签并将您的内容包装在其中。然后使用 AJAX 更改 div 的内容,在这种情况下,页面不会刷新,但内容会根据您的需要进行更改。在其中发送您的 GET 或 POST 数据。

标签: php redirect browser responsive-design


【解决方案1】:

这不是很受欢迎,但你可以使用这个技巧。创建不同的索引文件,包括一个 index.php、index_main.php、index_mobile.php。现在在你的 index.php 文件中使用这个代码

switch ($browser_t){
    case "<your main view case>":
        include "index_main.php";
        break;
    case "<your mobile view case>":
        include "index_mobile.php";
        break;
    # and so on
}

【讨论】:

  • 但是如何使用 $_GET 方法呢?
猜你喜欢
  • 1970-01-01
  • 2013-09-24
  • 1970-01-01
  • 2012-08-15
  • 1970-01-01
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
相关资源
最近更新 更多