абсолютно не понимаю, почему
site.ru/sobaka.html
и
site.ru/sobaka.html?limitstart=0
совместно со строками
RewriteCond %{QUERY_STRING} ^limitstart=0
RewriteRule ^(.*)$ /$1? [R=301,L]
дают разный результат,
возможно это делает index.php
остается последнее средство, попытаться сделать гарантированный редирект (исключить влияние остальных правил)
сразу после
RewriteEngine On
вставьте такой код:
т.е. при редиректе установить переменную RWR и на следующем проходе по .htaccess сразу сделать выход без преобразований при ее наличии
если не поможет, то еще такой вариант четвертой строки (не удаляя первые три)
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1? [R=301,L,E=RWR:yes]
NBSerG, не вижу здесь строк
поэтому не знаю куда Вы их вставляли
и еще, строка
RewriteCond %{REQUEST_FILENAME} !-f
срабатывает если запрашиваемый файл не существует
у Вас есть файл
или этот адрес обрабатывается через index.php ?
x0x0, проверьте Ваш вариант на страничке яндекса Анализ robots.txt
не обрабатывается в RewriteRule
а в RewriteCond с использованием переменной %{QUERY_STRING} то что после ? в адресе страницы прекрасно обрабатывается (я сначала проверил, и только потом написал что вариант работающий)
Скорей всего проблема в том, что ТС неудачно разместил этот код в своем .htaccess
NBSerG, покажите весь .htaccess (вместе с добавленным кодом, который, как Вы пишете "выкидывает на базу"), как оказалось без этого невозможно решить проблему (иначе придется давать советы вслепую и очень мала вероятность что они сработают)
maldivec дал Вам работающий вариант, что-то другое у Вас еще дальше влияет
А у Вас просто, без редиректа, при наборе адреса
на базу не выкидывает ?
Плохо знаком с RedirectMatch (пользуюсь исключительно RewriteRule), но Вы кажется лишнего "заэкранировали", попробуйте так
RedirectMatch 301 http://site.ru/catalog/alkogol/(.*)/(.*)$ http://site.ru/catalog/alkogol/$1/productID=$2
а если использовать RewriteRule
RewriteRule ^catalog/alkogol/([^/]+)/([0-9]+)$ http://%{HTTP_HOST}/catalog/alkogol/$1/productID=$2 [R=301,L]
Устанавливайте посетителю куки (не каждому вошедшему, а тому который набрал 13 зн. номер) и сохраняйте введенные им данные либо в куках, либо если данные большие в базе или файлах по идентификатору в куках.
И если потом он снова зайдет, то выдавайте ему список его номеров для выбора.
Иначе только авторизация.
Из недостатков - привязка к машине пользователя (с работы зашел посетитель - ок, потом из дома - его данных уже нет).
И если у посетителя куки отключены тоже не прокатит (хотя если поискать, то можно найти еще десяток мест для хранения данных на машине пользователя кроме кук, но это уже экзотика)
Внутри блога естественно нужно как-то настроить ссылки, чтобы они шли на новый адрес блога, на www.site2.com/blog/...
А редирект со старого сайта Вам все-равно будет нужен (если конечно старый блог проиндексирован поисковиками, есть внешние ссылки на старый блог и Вы не хотите потерять их вес и переходы с них).
он не будет зависеть от количества материалов, всего две строчки в .htaccess в корневом каталоге старого сайта:
RewriteCond %{HTTP_HOST} ^blog.site.com$
RewriteRule (.*) http://www.site2.com/blog/$1 [R=301,L]
При коде
foreach ($codes_array as $cur_code) {
if (trim($cur_code) == $code) {
return true;
}else{
return false;
}
происходит сравнение только с первым заначением из массива кодов
нужно сделать так, чтоб сравнивалось до первого совпадения или со всеми
if (trim($cur_code) == $code) return true;
но, поскольку у Вас всего одно значение, не это причина неудачи
скорее всего у Вас что-то напутано с доменами (или папками)
raboota.ru и xxx.ru
если все файлы лежат в одной папке, то все работает.
У меня есть подозрение, что при удачном коде происходит редирект на
http://xxx.ru/pag/xxx.html
но почему-то снова перебрасывает на
"/pass.php"
и в этот раз уже не присылаются
и массив $_POST оказывается пустымМожет у Вас в папках/home/mp3poisk/raboota.ru/и/home/mp3poisk/xxx.ru/есть файлы pass.php и password.php и они как-то пересекаются ?
Dragovith, зайдите на страничку яндекса Анализ robots.txt
и получите информацию из первых рук (от яндекса)