Назад | Перейти на главную страницу

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

Недавно я завершил проект, в котором переместил довольно большой веб-сайт на красивый, чистый веб-сайт меньшего размера. Это означало, что мне пришлось учитывать большое количество страниц, которые были проиндексированы поисковыми системами, и перенаправлять их соответствующим образом на соответствующую страницу нового веб-сайта, используя 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 может замедлить работу сервера.

Буду признателен за ваш вклад в этих ребят, и если это не подходящее место для извинений, я удалю их и опубликую на соответствующем обмене.

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

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