.htaccess 从URL隐藏一些GET参数

.htaccess 从URL隐藏一些GET参数,.htaccess,mod-rewrite,url-rewriting,url-redirection,friendly-url,.htaccess,Mod Rewrite,Url Rewriting,Url Redirection,Friendly Url,我正在使用PHP标题位置重定向页面: 浏览器中的当前URL https://mywebsite/open/firstpage/php/start.php?&cnt=us&language=en&url=http://secureURL.com 但我想表现出来 https://mywebsite/open/firstpage/php/start.php?&cnt=us&language=en 我在另一端使用GET方法来收集所有变量。我必须在querys

我正在使用PHP标题位置重定向页面:

浏览器中的当前URL

 https://mywebsite/open/firstpage/php/start.php?&cnt=us&language=en&url=http://secureURL.com
但我想表现出来

https://mywebsite/open/firstpage/php/start.php?&cnt=us&language=en
我在另一端使用GET方法来收集所有变量。我必须在querystring中隐藏
&url
,但我想在另一端接收
$\u GET['url']


如何在不显示url查询字符串的情况下共享我的
&url
?如何编写htaccess?

您不能这样做。如果查询字符串中不存在参数,那么它在任何地方都不可用,只是不在那里。没有“隐藏”查询字符串这样的事情

但是,您可以使用某种形式的会话机制将一段数据从一个页面传递到另一个页面。您可以将其放入$\u会话,或使用cookies。也许还有一种方法可以通过真正神秘的mod_重写魔法来实现这一点,但你不应该走这条路。真的

更重要的是:你想要实现什么?你为什么要这么做

审美原因?然后请注意,现代浏览器倾向于向用户隐藏URI的查询字符串部分

安全原因?那么你就大错特错了,你不应该使用如此容易被客户操纵的东西

用户跟踪?有现成的解决方案(比如谷歌分析)。

重定向所有URL

RewriteEngine on
RewriteRule ^(.*) $1?%{QUERY_STRING}&url=http://secureURL.com [L]
仅重定向到
/open/firstpage/php/start.php

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/open/firstpage/php/start.php
RewriteRule ^(.*) $1?%{QUERY_STRING}&url=http://secureURL.com [L]

我想这就是你想要的。

如果从原始字符串中删除
&url=…
,那么它将无法使用,因为
$\u GET['url']
@anubhava我在url中保留了
&url=
,但不想在broesers url中显示这意味着什么?如果浏览器看不到URL的某些部分,这意味着他们也不会将其发送到您的web服务器。我现在正在应用安全防护盐,我将与thirdt paarty共享,他们将检查RSA。最后,这两个散列值都应该是sameYes,但我仍然不确定是需要重定向所有URL还是只重定向上面提到的URL。