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