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

时间:2014-11-29 18:13:52

标签: php apache .htaccess mod-rewrite cookies

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

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

那么实际获取get参数的值并使用php操作它的方法是什么,在没有用户注意的情况下从url中删除,或者在将参数作为子文件夹给出时设置cookie。我怀疑它必须是一些htaccess规则和php技巧,但找不到办法。

通过给定网址 www.abc.com/jsdfnjns ,如何立即重定向到 www.abc.com 并且在apache或用户cookie中理想地将服务器端保存为 jsdfnjns ? 有没有办法让它也与实际的get参数一起发生?

原理图:

www.abc.com/jsdfnjns 将其转换为 - > goo.gl/sjbjsb - >点击后,用户将转到 www.abc.com ,但不知何故,我得到了 jsdfnjns ,并在主页面中做出了不同的响应。

希望我的问题得到明确定义,任何想法都将受到赞赏。 感谢。

1 个答案:

答案 0 :(得分:1)

首先你需要设置.htaccess文件

<IfModule mod_rewrite.c>

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

</IfModule>

index.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);
}