Htaccess重定向而不更改浏览器URL

时间:2018-04-18 14:54:15

标签: php apache .htaccess mod-rewrite url-rewriting

当用户访问我的网站时,他们会使用这种url格式(“demo”在这里并不重要): 的 https://example.com/page/demo-558

我的系统可能会将其重定向为此格式 的 https://example.com/?view=test&page=658

但我不希望用户在浏览器中看到URL更改,它必须是不可见的。 我搜索了几个小时但似乎什么都没有用! 这是我目前的规则:

RewriteRule ^page/(.+)-([0-9]+)$ /index.php?view=test&page=$2

1 个答案:

答案 0 :(得分:0)

浏览器如何在不“知道”参数的情况下显示带参数的动态页面?

我认为你不是在寻找(透明)重写,更多的是反向(不透明)代理。该URL将在http服务器和代理之间处理,浏览器将获得“简单”的URL。

  1. 浏览器发送到服务器:/ page / demo-558
  2. 服务器重写为/?view = test& page = 658
  3. 服务器使用/?view = test& page = 658
  4. 将内容传送到ReverseProxy
  5. ReverseProxy使用/ page / demo-558
  6. 将内容传送到浏览器

    ReverseProxy是http-Server

    的一部分

    用图片解释:https://www.akadia.com/services/apache_redirect.html