Htaccess перенаправить папку и удалить конец URL

Htaccess перенаправить папку и удалить конец URL

Я пытаюсь перенаправить некоторые URL-адреса с помощью , .htaccessно безуспешно. Проблема в том, что мне приходится перенаправлять две разные части URL-адреса.

Вот пример того, что мне нужно перенаправить:

example.com/huawei-reparatie/huawei-mate-7-reparatie

необходимо перенаправить на:

example.com/reparatie/huawei/huawei-mate-7

Итак, что нужно сделать:

  • Разделить huawei-reparatieнаreparatie/huawei
  • Удалить -reparatieв конце каждого URL

Это динамические URL-адреса, так что это не только этот. Мне нужно перенаправить все эти URL-адреса для множества разных брендов (например, huawei) и множества разных устройств (например huawei-mate-7, )

Надеюсь, кто-нибудь сможет мне помочь.

решение1

Для уточнения Ваших требований:

/first-second/text-to-keep-removethis

Следует перенаправить на:

/second/first/text-to-keep

Где

  • firstи содержат только строчные буквы a-z second.removethis
  • firstи secondразделены одним дефисом.
  • removethisпредваряется одним дефисом (который также удаляется) и всегда находится в конце URL-пути.
  • text-to-keepпредставляет собой любую последовательность символов a-z и дефиса.

Попробуйте сделать следующее в верхней части корневого .htaccessфайла, используя mod_rewrite:

RewriteEngine On

RewriteRule ^([a-z]+)-([a-z]+)/([a-z-]+?)-[a-z]+$ /$2/$1/$3 [R=302,L]

TheRewriteRule шаблон(первый аргумент) — это регулярное выражение, которое сопоставляется только с запрошенным URL-путем, без префикса слеша.

В$nзаменаstring — это обратные ссылки на соответствующую группу захвата (подшаблон в скобках) вRewriteRule шаблон.

Любая строка запроса, присутствующая в исходном запросе, будет передана без изменений. Если какая-либо строка запроса должна быть удалена, добавьте флаг QSD(Отменить строку запроса).

Обратите внимание, что это временное (302) перенаправление. Измените на 301 (постоянное) перенаправление — если это и есть намерение — только после того, как убедитесь, что это работает нормально.

Связанный контент