Перенаправление старых URL-адресов на новые URL-адреса на основе тегов

У нас на нашем сайте была коррупция базы данных, сейчас мы строим новую.

Однако мы продумали другой подход, мы переносим наши старые статьи в поддомену и создаем новый веб-сайт с лучшим интерфейсом и архитектурой.

То, что я хотел бы сделать, - перенаправить URL-адрес от старого веб-сайта до поддомена, без него:

http://olddomain.com/foo/something

в

http://sub.olddomain.com/foo/something

и мы хотим сохранить olddomain для обслуживания нового контента

http://oldomain.com/foo2/something

это возможно с Nginx

ОБНОВИТЬ

У нас есть заданное слово, на основе которого мы хотим перенаправить

мы просто хотим

http://olddomain/foo/extrainfo

перенаправлять

http://sub.olddomain/foo/extra

при использовании правила перезаписи

/abc/ redirect permanent

у нас возникают проблемы с URL-адресом, который имеет слово foo, и он перенаправляется в новый домен.

нам просто нужно http://olddomain/foo/ перенаправить на http://sub.olddomain./foo/extra

не http://olddomain/abc/foo для http://sub.olddomain

2 ответа

Да, это просто с nginx. Вам просто нужно поместить правило перезаписи в правильные блоки местоположения/сервера:

server { 
 listen 80;
 server_name olddomain.com;
location ~/foo/ {
 rewrite ^ http://sub.olddomain.com$request_uri? permanent;
 }
 location / {
#serve new content
 }
}

server{
 listen 80;
 server_name sub.olddomain.com;
 location / {
 #serve old content
 }
}

Я бы добавил второй комментарий, что вы должны убедиться в том, что принимаете во внимание SEO.


Вам понадобится что-то в вашем URL-адресе, чтобы определить, есть ли старый URL-адрес или новый URL-адрес. Если у вас есть что-то, чем легко, и мы можем ответить на вопрос. Ваш данный пример можно легко решить с помощью:

location ~ ^/[a-z]+/[a-z]+$ {
 return 302 $scheme://sub.$server_name$request_uri;
}

location ~ ^/[a-z0-9]+/[a-z]$ {
 // serve new stuff
}

Но не забывайте о поисковых системах и других роботах! Если вы планируете использовать исходные URL-адреса для нового контента в будущем, не перенаправляйте что-либо и просто доставляете страницы в тех же местах.

licensed under cc by-sa 3.0 with attribution.