在我的网站上,我在访问页面表单内容时使用会话ID。通常不会显示url中的sessionid,因为它是通过jQuery .load访问的,因此URL不会更改。上面参考的页面需要被一些外部域直接访问。 我在表单页面的顶部使用了以下PHP来显示整个页面。使用.htaccess修剪网址查询字符串
<?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的错误,它可以't complete redirect
http://briancray.com/2010/03/18/htaccess-hack-remove-url-query-strings/ – jcubic 2011-03-09 20:10:54
“这将破坏任何功能THAT取决于查询字符串“ - 即时猜测这将是我正常使用的会话ID? – 2011-03-09 20:16:56