Преобразование 301 перенаправления в RewriteRule

#.htaccess #redirect

#.htaccess #перенаправление

Вопрос:

После создания нового сайта у меня есть пара перенаправлений в моем htaccess, чтобы перенаправлять пользователей на нужную страницу по соображениям SEO.

Это все 301 перенаправление в 1 такого формата:

Для страниц

Redirect 301 /page.html /new-page

Для продукта

Redirect 301 /webshop/category-name/subcategory-name/detail/123/product-name.html /product/product-name

подкатегория необязательна, не все продукты входят в подкатегорию, но у них есть по крайней мере 1 категория. 123 — это идентификатор продукта, который отличается для всех продуктов.

Для категории

Redirect 301 /webshop/category-name/subcategory-name /category/category-name

подкатегория необязательна.

Это работает нормально, но поскольку этот веб-сайт доступен через 2 домена (сайт на голландском и английском языках), эти перенаправления должны работать только тогда, когда домен является dutchdomain и englishdomain .

Итак, я прочитал о RewriteEngine, RewriteCond и RewriteRule и попробовал это:

 RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.dutchdomain.nl [NC]
RewriteRule /faq.html /faq/ [L,R=302]
  

Но это не работает. Как я могу заставить это работать с условием домена?
Есть ли способ сделать это с помощью обычного выражения, чтобы у меня было всего несколько строк вместо 1668 строк, которые у меня есть сейчас?

С помощью регулярного выражения webshop (*. ) я заменил URL-адреса из старой карты сайта для продуктов. URL для страниц и категорий я заменил вручную.

Комментарии:

1. Можете ли вы сформулировать свои требования в формате ввода и вывода, потому что я вижу, что разбросано много вопросов?

2. RewriteEngine On RewriteCond %{HTTP_HOST} !^www.dutchdomain.nl [NC] RewriteRule /faq.html /faq/ [L,R=302] выглядит нормально, за исключением одной вещи: косая черта в шаблоне перезаписи не работает в контексте htaccess (работает только в конфигурации сервера или контексте виртуального хоста). Итак, вам это нужно, удалите его. Измените свой /faq.html на faq.html или ^faq.html , чтобы он точно соответствовал этому URI.

3.Возможно RewriteRule ^/?(. ).html /$1 [L,R=302] , это то, что вы ищете, но вы наверняка читали это бесконечное количество раз, когда читали о модуле перезаписи… Ваш вопрос неясен, поэтому никто не может дать четкий ответ…