- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Друзья, как бы вы поступили, будь у вас такое ТЗ:
Нужно 301-ым редиректом рерайтить примерно 200 штук разнообразных URL на новые.
Регулярка не может быть использована в виду того, что урлы будут совсем разные и без каких-либо общих черт. Пример:
мойсайт.ру/какая-то-страница/ => мойсайт.ру/совсем-другое-название-этой-страницы/
И таких 200 штук!:crazy:
200 строчек рерайтов в блоке server NGINX?
Как оно будет сказываться на производительности?
Или использовать PHP -- функция, которая каждый раз будет пробовать найти урл в массиве со старыми и сопоставленными с ними новыми, и, если находится -- редирект средствами PHP?
Как поступить?
nginx на это сожрет меньше ресурсов, чем php.
можно сделать на php по схеме:
создаем базу (можно файл) в формате: старый урл|новый урл
если движок не нашел нужную страницу - ищем по графе "старый урл", если нашли - редиректим, если не нашли - отдаем 404 страницу.
200 строчек рерайтов действительно не страшно.
нарисовали пачку location-ов и вперёд.
Если есть возможность принимать и редиректить nginx-ом без дальнейшей передачи php и/или backend-у -- надо делать именно им.
Ну а если впадлу писать кучу location-ов, или если их затруднительно генерить автоматически - надо брать nginx perl или nginx lua module.
Но, как по мне, если список из 200 урл есть, он явный и конечный - лучше сгенерить конфиг с нужными location для nginx.
Да, nginx справится действительно безо всяких проблем; для удобства можно поместить все рерайты в отдельный файл и заинклудить его в нужном месте конфига виртуалхоста.
Всем спасибо -- таки да, буду делать NGINX-ом, к чему, собственно, изначально и склонялся.
Немного не нравится одно -- NGINX будет при каждом запросе к серверу "бегать" по всем локэйшенам и сверять, подходит оно иль нет.
На PHP же можно было сделать, чтобы проверка велась только при отсутствии страницы.
Или я неправ?
Эх, жалко в урлах нет ничего уникального, чтобы можно было зацепиться регуляркой...
Всем спасибо -- таки да, буду делать NGINX-ом, к чему, собственно, изначально и склонялся.
Немного не нравится одно -- NGINX будет при каждом запросе к серверу "бегать" по всем локэйшенам и сверять, подходит оно иль нет.
На PHP же можно было сделать, чтобы проверка велась только при отсутствии страницы.
Или я неправ?
по возможности в nginx надо делать точный location, особенно если они все известны.
то есть
location = /xxx.html {
some_stuff_here ;
}
это *очень* быстро.
в php быстрее не будет - надо дёрнуть сам php, дальше php должен сделать какой-то stat() на файл, в зависимости от того, есть он или нет - запустить какую-то логику, передать какой-то header, который потом поедет ещё куда-то дальше.
Это дольше и сложнее.
Берите nginx, а по количеству location не парьтесь вообще :)