На моем сайте я использую идентификатор сеанса при доступе к содержимому формы страницы. Sessionid в URL-адресе обычно не отображается, поскольку он доступен через 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 удалить идентификатор сеанса? Я пробовал следующее, но получаю 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]
*** EDIT * ** * использовал это, заполнив соответствующие данные
RewriteCond %{HTTP_REFERER} !**aloweddomain.com** [OR] RewriteCond %{QUERY_STRING} !=sessionid=**XXXXX** RewriteRule .* /**desiredpage**.php? [R=301,L]
просто получите ошибку FF, что она не может завершить перенаправление