Unlock: Т.е. получается Location: http://www.site.com'.strtolower($_SERVER['REQUEST_URI']) правильный вариант? Ведь Location: http://$host$uri/$extra из примера по сути тоже самое, или нет?
Unlock: Подскажите пожалуйста, как правильно при 301 редиректе должен быть написан Location:
1) Location: '.strtolower($_SERVER['REQUEST_URI'])
2) Location: http://www.site.com'.strtolower($_SERVER['REQUEST_URI'])
В броузере то оба варианта работают, но какой правильный, чтобы с ботами не было проблем?
Правильней наверно будет с HTTP, более того, в документации на PHP.net написано, что в протоколе http версии 1.1, указание абсолютного пути, включая имя хоста и полный путь, обязательно (!) (но некоторые клиенты - броузеры, поддерживают и относительные пути, без имени хоста).
Замечание: HTTP/1.1 requires an absolute URI as argument to Location: including the scheme, hostname and absolute path, but some clients accept relative URIs. You can usually use $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] and dirname() to make an absolute URI from a relative one yourself:
Там же приведен немного громоздкий пример правильного использования редиректа location:
/* Redirect to a different page in the current directory that was requested */
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
P.s. Вот тут еще немного сам для себя про редиректы выписывал.
Сам задаюсь таким вопросом, но вроде из простого JS врядли доступна такая информация, только в связке JS + какой-нибудь серверный язык, скрипт (PHP, perl, SSI).
Настраиваем веб-сервер чтобы он js файлы обрабатывал
например php интерпритатором, подключаем js с такого сервера, а а самом файле js пишем php код генерирурющий javascript, например:
Oniks: А то ведь можно УРЛ изменить не только добавив запросы, но и якорь. ;)
Тоже сначало задумался над этим, но слава блогу сапе не рассматривает адреса с разными якорями как разные страницы, ну или я может что то упускаю из виду...
Leg1oner: Можно использовать форум до версии 1.3 . Старые версии бесплатны. Очень нравится IPB, очень функционален и удобен. Множество бесплатных и платных модов и скинов!
В старых версиях - старые уязвимости, кроме того у меня ипб 1.3, скачанный еще в далекие времена, без дополнительных исправлений - отказывается работать на новых версиях php и mysql. Хотя сейчас судя по тому что спрос на бесплатные форумы растет, наверно есть готовые моды и патчи которые все это дело правят 🚬
Т.е. получается Location: http://www.site.com'.strtolower($_SERVER['REQUEST_URI']) правильный вариант? Ведь Location: http://$host$uri/$extra из примера по сути тоже самое, или нет?
Ага 🙄
Подскажите пожалуйста, как правильно при 301 редиректе должен быть написан Location:
1) Location: '.strtolower($_SERVER['REQUEST_URI'])
2) Location: http://www.site.com'.strtolower($_SERVER['REQUEST_URI'])
В броузере то оба варианта работают, но какой правильный, чтобы с ботами не было проблем?
Правильней наверно будет с HTTP, более того, в документации на PHP.net написано, что в протоколе http версии 1.1, указание абсолютного пути, включая имя хоста и полный путь, обязательно (!) (но некоторые клиенты - броузеры, поддерживают и относительные пути, без имени хоста).
Там же приведен немного громоздкий пример правильного использования редиректа location:
P.s. Вот тут еще немного сам для себя про редиректы выписывал.
Сам задаюсь таким вопросом, но вроде из простого JS врядли доступна такая информация, только в связке JS + какой-нибудь серверный язык, скрипт (PHP, perl, SSI).
Настраиваем веб-сервер чтобы он js файлы обрабатывал
например php интерпритатором, подключаем js с такого сервера, а а самом файле js пишем php код генерирурющий javascript, например:
echo "alert('Ваш ip: ".getenv("REMOTE_ADDR")."');";
?>
По такому принципу работают практически все скрипты якобы полчающие ip средствами javascript, которые я видел:
http://javascript.internet.com/user-details/ip-address.html
http://www.hashemian.com/tools/visitor-IP.htm
В том числе и Google Analytics: http://www.google-analytics.com/urchin.js
А то ведь можно УРЛ изменить не только добавив запросы, но и якорь. ;)
Тоже сначало задумался над этим, но слава блогу сапе не рассматривает адреса с разными якорями как разные страницы, ну или я может что то упускаю из виду...
Какой бы не был редирект яша банит. попадал не раз (
За редиректы? Тогда дела плохи, особенно для сайтов которые делали в "веботделе" 🙄
Сделал у себя так:
$uri = getenv('REQUEST_URI');$url = preg_replace("#^([^\?]+).*$#msi", "\\1", $uri);
if ($url!=$uri) {
header("Location: {$url}", TRUE, 301);
exit();
}
P.s. Фух, вроде бы в этот раз пронесло :D
Быстрое решение для страниц и движков в которых динамические параметры GET не используются, добавляем в начале скриптов следующий код:
301 редирект (Moved Permanently) на эту же страницу без параметров.
Дальше думаем как переделать сайт чтобы он работал без GET запросов. 🚬
Можно использовать форум до версии 1.3 . Старые версии бесплатны. Очень нравится IPB, очень функционален и удобен. Множество бесплатных и платных модов и скинов!
В старых версиях - старые уязвимости, кроме того у меня ипб 1.3, скачанный еще в далекие времена, без дополнительных исправлений - отказывается работать на новых версиях php и mysql. Хотя сейчас судя по тому что спрос на бесплатные форумы растет, наверно есть готовые моды и патчи которые все это дело правят 🚬
могу посоветовать IPB и punbb в целом хорошие форумы
IPB платный 🚬