【发布时间】:2011-03-09 20:07:12
【问题描述】:
在我的网站上,我在访问页面表单内容时使用会话 ID。 url 中的 sessionid 通常不会显示,因为它是通过 jQuery .load 访问的,因此 url 不会改变。上面引用的页面需要一些外部域直接访问。 我在表单页面的顶部使用了以下 PHP,以显示整个页面。
<?php
$code = $_GET['sessionid'];
$referrer = $_SERVER['HTTP_REFERER'];
if(strcmp( $code , 'XXXXX' ) !=0) {
if (preg_match("/alloweddomain.com/",$referrer)) {
header('Location: http://www.mydomain.com/desiredpage.php?sessionid=XXXXX');
} else {
header("Location: http://www.mydomain.com/otherpage.php");
}
}
?>
.htaccess 有没有办法删除会话 ID?我尝试了以下方法,但收到 500 个内部服务器错误。
RewriteEngine On
RewriteBase /
"lots of 301 redirects"
HTTP_REFERER variable RewriteCond %{HTTP_REFERER} !aloweddomain.com RewriteCond %{QUERY_STRING} !="sessionid=XXXXX" RewriteRule .* /desiredpage.php? [R=301,L]
***编辑**** 使用这个,填写适当的细节
RewriteCond %{HTTP_REFERER} !**aloweddomain.com** [OR]
RewriteCond %{QUERY_STRING} !=sessionid=**XXXXX**
RewriteRule .* /**desiredpage**.php? [R=301,L]
只是得到无法完成重定向的FF错误
【问题讨论】:
-
“这将破坏任何依赖于查询字符串的功能”——我猜这将是我对会话 ID 的正常使用?