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

Я недавно завершил проект, в результате которого я переместил довольно большой веб-сайт на красивый чистый маленький веб-сайт. Это означало, что я должен был учитывать большое количество страниц, проиндексированных поисковыми системами, и соответствующим образом перенаправлять их на соответствующую страницу на новом веб-сайте, используя 301 Redirects,

Было более 300 уникальных URL, которые мне пришлось перенаправить. Я использовал apache mod_rewrite модуль для достижения перенаправления, как большинство URL-адресов, содержащихся GET parameters какой твой стандарт Redirect Заявление не читается.

Например, у меня были такие URL:

HTTPS: //olddomain/product.html prod_id = 143 & ID = 234

и редирект вот так:

RewriteCond %{QUERY_STRING} prod_id=143&id=234$
RewriteRule ^product\.html$ /products/product-a? [L,R=301]

Это имело место почти для всех из них. Наверное, мой вопрос: правильно ли я записал 300 отдельных перенаправлений, как указано выше, или есть более "чистый" способ сделать это? Я слышал, что многие rewrite rules может замедлить работу сервера.

Я был бы признателен за ваш вклад в это ребята, и если это не то место, где можно попросить прощения, я удалю и опубликую в соответствующем обмене

1 ответ

Решение

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

Использование правил перезаписи для этого немного сложный способ реализовать это.

Другие вопросы по тегам