помогите с редиректом

DmitryShustov
На сайте с 27.11.2004
Offline
259
760

поставил редирект на новые урлы, старые при этом работоспособны, гугля выдает "Fatal error: Call to undefined function: array() in /home/.../eshoprub.php on line 4."

Вот код:

<?php

if (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {

header("HTTP/1.1 301 Moved Permanently");

header('Location: http://www.сайт.ru/shoprub_'.$_GET['Rubric'].'_'.$_GET['FirmSort'].'_'.$_GET['FirmName'].'.html');

exit;

}

.....

в чем проблема?

Lor
На сайте с 28.05.2004
Offline
352
Lor
#1

Так недолго и в бан загреметь ...

Весь этот бред убрать и поставить редирект 301 в .htaccess

Йопез - форум без модераторов. https://yopez.com
Dalim
На сайте с 13.01.2006
Offline
47
#2

У вас не определены переменные $_GET['Rubric'] $_GET['FirmSort'] $_GET['FirmName']

И советую location писать с маленькой буквы.

DmitryShustov
На сайте с 27.11.2004
Offline
259
#3
Lor:
Так недолго и в бан загреметь ...

за что?????

В любом случае одна и та же страница выдается, просто урл сменил на псевдостатичный.

Dalim:
У вас не определены переменные $_GET['Rubric'] $_GET['FirmSort'] $_GET['FirmName']
И советую location писать с маленькой буквы.
Lor:
Весь этот бред убрать и поставить редирект 301 в .htaccess

Спасибо, буду тестить

alexspb
На сайте с 14.11.2005
Offline
187
#4

DmitryShustov, использование переменных полученных от пользователя без проверки ($_GET) - подарок кул хацкерам. Постарайтесь избавиться от такого стиля программирования.

DmitryShustov
На сайте с 27.11.2004
Offline
259
#5

alexspb, покажите как правильно? *жажда к знаниям жжет, теперь спать не буду, все сайты мои взломают...*

DmitryShustov
На сайте с 27.11.2004
Offline
259
#6
Dalim:
Весь этот бред убрать и поставить редирект 301 в .htaccess

Хмм сел покопаться в этом всем...А как правильно редирект в htaccess написать чтоб переменные передавались? нашел только перевод без www в www и все!.....

голову сломал

Dalim
На сайте с 13.01.2006
Offline
47
#7

В htaccess Вы можете только парсить адресную строку, поэтому сложно будет учесть все переменные.

Хотя, если у вас строка вида site.ru/index.php?Rubric=first&FirmSort=second&FirmName=third, то в htaccess пишете:

RewriteRule ^/index.php?Rubric=(.*)&FirmSort=(.*)&FirmName=(.*)$ http://%{HTTP_HOST}/shoprub_$1_$2_$3.html [R=301]

Только не сделайте зацикливание, если у вас в htaccess уже обрабатывается эта строка только наоборот :)

В вашем случае подойдет и скриптовый редирект.

Только как сказал alexspb, взломать то могут без проверки входящих переменных, но не в этом случае. В этом случае ничего кул-хацкеры сломать не смогут.

А вообще удаляйте из переменных заведомо ненужные символы, обрезайте html-теги (strip_tags()), если переменная должна быть числом на всякий случай сделайте ей intval(), чтобы уж наверняка, а при работе с БД экранируйте все входящие данные addslashes()

В этом случае риск минимальный.

Каширин
На сайте с 03.01.2004
Offline
1031
#8
DmitryShustov:
за что?????

За клоакинг.

DmitryShustov
На сайте с 27.11.2004
Offline
259
#9

спасибо усе понял

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий