如果设置了会话或 cookie,则将查询字符串附加到整个域的 URL
If session or cookie is set, append query string to URLs across the whole domain
我们有一个使用动态品牌的 PHP 应用程序,因此如果我们插入查询字符串
?dealer=the_dealer_name
或 &dealer=the_dealer_name
,我们能够在我们的主平台上动态加载该经销商的徽标和样式表,而无需登录经销商的帐户(我们将应用程序出售给成千上万的经销商).这工作正常,但该应用程序有多个页面,如果我们要演示该应用程序,我们不想在每次打开新页面时都添加查询字符串。
所以我们的想法是在设置 $_GET['dealer']
且不为空时设置 cookie 或会话,并使查询字符串在整个应用程序中持久存在,这样我们就不需要继续添加它演示期间的每一页。我们将为该 cookie/session 设置一个小时的过期时间。如果我们将空字符串传递给 'dealer' 查询,例如 ?dealer=
.
,我们还将添加取消设置它们的功能
我想知道是否有任何方法可以在 ?dealer=the_dealer_name
/ &dealer=the_dealer_name
查询字符串首次设置后添加到 url 并使其持久化作为 URL 的最后一个查询字符串,直到 cookie/session 过期。
总而言之,一旦我们将查询字符串 ?dealer=the_dealer_name
或 &dealer=the_dealer_name
传递给 URL,站点上的所有 URL 路径都将附加该查询字符串,除非我们传递一个空字符串作为参数并取消设置 cookie/session,否则 cookie/session 过期。
谢谢!
P.S。通过 $_SERVER
全局变量获取 URL、添加查询字符串并使用 header()
重定向可能无法正常工作,因为我必须将逻辑放在我的头文件中。任何加载的页面都需要重定向到自身但附加查询字符串,这将在重定向之上创建重定向。
您可以轻松地将其添加到会话中,将其放在页面顶部:
session_start();
if (isset($_GET['dealer'])) $_SESSION['dealer'] = $_GET['dealer'];
//then get the $_SESSION['dealer'] on all pages
这将启动会话,并存储 dealer 变量(如果它在 quesrystring 中),它将对所有后续页面加载可用。根据您对字符串的处理方式,您可能希望将其转义或使用白名单。
如果您想删除会话(并取消品牌),您可以 运行 session_destroy();
另一种方法是设置 .htaccess
假设您使用的是 apache
请求页面时附加特定的查询字符串
RewriteRule ^([^?]*)$ ?dealer=the_dealer_name [L,QSA,NC]
不用的时候就评论一下
# RewriteRule ^([^?]*)$ ?dealer=the_dealer_name [L,QSA,NC]
我们有一个使用动态品牌的 PHP 应用程序,因此如果我们插入查询字符串
?dealer=the_dealer_name
或 &dealer=the_dealer_name
,我们能够在我们的主平台上动态加载该经销商的徽标和样式表,而无需登录经销商的帐户(我们将应用程序出售给成千上万的经销商).这工作正常,但该应用程序有多个页面,如果我们要演示该应用程序,我们不想在每次打开新页面时都添加查询字符串。
所以我们的想法是在设置 $_GET['dealer']
且不为空时设置 cookie 或会话,并使查询字符串在整个应用程序中持久存在,这样我们就不需要继续添加它演示期间的每一页。我们将为该 cookie/session 设置一个小时的过期时间。如果我们将空字符串传递给 'dealer' 查询,例如 ?dealer=
.
我想知道是否有任何方法可以在 ?dealer=the_dealer_name
/ &dealer=the_dealer_name
查询字符串首次设置后添加到 url 并使其持久化作为 URL 的最后一个查询字符串,直到 cookie/session 过期。
总而言之,一旦我们将查询字符串 ?dealer=the_dealer_name
或 &dealer=the_dealer_name
传递给 URL,站点上的所有 URL 路径都将附加该查询字符串,除非我们传递一个空字符串作为参数并取消设置 cookie/session,否则 cookie/session 过期。
谢谢!
P.S。通过 $_SERVER
全局变量获取 URL、添加查询字符串并使用 header()
重定向可能无法正常工作,因为我必须将逻辑放在我的头文件中。任何加载的页面都需要重定向到自身但附加查询字符串,这将在重定向之上创建重定向。
您可以轻松地将其添加到会话中,将其放在页面顶部:
session_start();
if (isset($_GET['dealer'])) $_SESSION['dealer'] = $_GET['dealer'];
//then get the $_SESSION['dealer'] on all pages
这将启动会话,并存储 dealer 变量(如果它在 quesrystring 中),它将对所有后续页面加载可用。根据您对字符串的处理方式,您可能希望将其转义或使用白名单。
如果您想删除会话(并取消品牌),您可以 运行 session_destroy();
另一种方法是设置 .htaccess
假设您使用的是 apache
请求页面时附加特定的查询字符串
RewriteRule ^([^?]*)$ ?dealer=the_dealer_name [L,QSA,NC]
不用的时候就评论一下
# RewriteRule ^([^?]*)$ ?dealer=the_dealer_name [L,QSA,NC]