- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброго дня.
Подскажите, как сделать 301 редирект с:
site.ru/dir/anything/.../anything/?anything
на:
site.ru/dir/
Делаю так:
и получаю почти то что нужно, но зацикливание ERR_TOO_MANY_REDIRECTS.
JonnyB, у вас нет location условия для редиректа
location ~* /dir/anything/ {
return 301 /dir/;
}
что-то типа того. Ваш rewrite зацикливается, так как нет IF. Перепишите на ваши регулярки
SocFishing, спасибо, мысль понял. А если нужно что то сматчить и использовать в урле для редиректа?
Ну например site.ru/dir/dir2/anything редиректим на site.ru/dir/dir2/, site.ru/dir/dir3/anything редиректим на site.ru/dir/dir3/. Попробовал свой rewrite обернуть локейшн, но все равно зацикливается:
Хотя вроде бы site.ru/dir/dir2/ уже не должен попадать повторно сюда, потому что вконце рег выражения .+
JonnyB,
У вас дело в том, что у вас rewrite к текущему урлу делает еще /dir. Вроде надо делать так rewrite ^(/dir/[^/]+/).+$ $scheme://$host/$1 permanent;
Можно еще использовать такие конструкции:
location ~* / {
if ($request_uri ~ ^/dir/dir2/(.*)/$) {
return 301 /dir/dir2/;
}
if ($request_uri ~ ^/dir/dir3/(.*)/$) {
return 301 /dir/$1/; #передать anything в редирект
}
}
К сожалению я уже подзабыл, читать мануалы не хочется и тестить еще где-то надо. У nginx есть еще map директива для создания переменных. Не часто я занимаюсь тонкой настройкой, так что не пинайте, помог чем смог ;)
SocFishing, спасибо, очень помогли. Заработала вот такая конструкция: