#.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]
, это то, что вы ищете, но вы наверняка читали это бесконечное количество раз, когда читали о модуле перезаписи… Ваш вопрос неясен, поэтому никто не может дать четкий ответ…