在我的網站上,我在訪問頁面表單內容時使用會話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