В духе того, чтобы задать Хороший субъективный вопрос , я возвращаю это снова, в надежде, что ServerFault по-прежнему будет предпочтительным " Имеется большое количество перенаправлений для реализации Недавно я завершил проект, в котором я переместил довольно большой веб-сайт на красивый чистый веб-сайт меньшего размера. Это означало, что мне пришлось учитывать большое количество страниц, которые были проиндексированы поиском ...
Недавно я завершил проект, в котором я переместил довольно большой веб-сайт на красивый чистый веб-сайт меньшего размера. Это означало, что мне пришлось учитывать большое количество страниц, которые были проиндексированы поисковыми системами, и перенаправлять их соответствующим образом на соответствующую страницу нового веб-сайта, используя 301 редирект
.
Их было более 300 уникальные URL-адреса, все из которых мне пришлось перенаправить. Я использовал модуль apache mod_rewrite
для выполнения перенаправления, поскольку большинство URL-адресов содержали GET-параметры
, которые не используются в вашем стандартном операторе Redirect
» t прочитано.
Так, например, у меня были такие 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 отдельных перенаправлений, как указано выше, или есть более «чистый» способ сделать это? Я слышал, что многие правила перезаписи
могут замедлить работу сервера.
Буду признателен за ваш отзыв об этих ребятах, и если это не подходящее место для извинений, я удалю и опубликую на соответствующей бирже.
Я бы реализовал такого рода перенаправления в самом коде приложения, создав массив с исходными и целевыми URL-адресами, а затем, проверяя, содержит ли URL-адреса параметры в массиве, отправлял бы обратно перенаправление по назначению.
Использование правил перезаписи поскольку это немного сложный способ реализовать это.