Я переношу свой веб-сайт на другую платформу, но пока я заканчиваю разработку всех страниц нового веб-сайта, мне нужно, чтобы мои пользователи могли перемещаться между двумя платформами.
Поэтому мне нужно сделать 301 редирект для всех URL-адресов, которые содержат 1 конкретное слово, но не содержат других слов:
Пример:
Мне нужно перенаправить все URL-адреса, содержащие слово «www2.misite.com/travel(.*)», но не содержащие слов «бронирование» и «отель».
Мой сервер - Nginx, я не знаю, выполняется ли это с помощью регулярного выражения или с помощью операторов nginx.
Большое спасибо.
Мне удалось решить свою проблему следующим образом:
location ~ /travel(.*)+/(.*)$ {
if ($uri !~ "^(.*)/(reservation|hotel|faq)(.*)"){
return 301 https://www.misite.com$request_uri;
}
autoindex on;
root /usr/share/nginx/html/sites/;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
Спасибо.
я пытаюсь
location ~ /travel(.*)+/(.*)$ {
if ($request_uri !~ "^/(reservation|hotel|faq)/\w+$"){
return 301 https://www.misite.com/$1;
}
}
Но не работать на внутреннее состояние. :(
Попробуйте использовать регулярное выражение с отрицательным взглядом на два слова, которые вы не хотите пересылать. Вы можете сделать это в условии if или в правиле перезаписи.