如何从 url 获取参数,恕不另行通知


How to get the parameters from url without notice

所以我在想一种方法,当页面下载到客户端时从 url 中删除参数,并在 get 参数的每个不同值中做出不同的响应。

让我为你说得更清楚。假设我有这个网址:www.abc.com/?q=jsdfnjns。理想情况下,我正在考虑用 goo.gl 缩短此 URL,然后将其发送给客户。当客户点击它时,它会自动转到 www.abc.com 干净的 url 并向客户端设置一个带有 q 值的 cookie。我之前在许多会员链接中看到过它,除了初始 url 没有 get 参数,但值实际上是一个子文件夹,例如 www.abc.com/jsdfnjns

那么有什么方法可以实际获取 get 参数的值并使用 php 对其进行操作,同时在没有用户通知的情况下从 url 中删除,或者在参数作为子文件夹给出时设置 cookie。我怀疑一定是一些htaccess规则和php技巧,但找不到方法。

使用给定的 url www.abc.com/jsdfnjns 我如何立即重定向到 www.abc.com并且JSDFNJN是否理想地保存在Apache或用户cookie中的服务器端?有没有办法让它也发生在实际的获取参数上?

还有一个原理图:

www.abc.com/jsdfnjns 单击时将其转换为 -> goo.gl/sjbjsb ->,用户将 www.abc.com 但不知何故我得到了 jsdfnjns 并在主页中以不同的方式响应。

希望我的问题定义明确,任何想法将不胜感激。谢谢。

首先,您需要设置 .htaccess 文件

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php?q=$1 [QSA,L]
</IfModule>

索引.php代码:

session_start();
if(isset($_REQUEST['q'])) {
    $_SESSION['q'] = $_REQUEST['q'];
    header('Location:index.php');
    die();
}
else{
    if(isset($_SESSION['q'])) $q = $_SESSION['q'];
    else $q = null;
    //YOUR CODE
    var_dump($q);
}