Как правильно составить правило RewriteRule?

Как правильно организовать переадресацию URL с адреса <br/> /goods/tovar-1 <br/> на новый адрес <br/> /catalog/tovary/tovar-1 <br/>? Необходимо преобразовать первое слово из старого URL в наименование каталожной категории, добавив "y", при этом сохранив конечный алиас.
  • 17 декабря 2024 г. 9:23
Ответы на вопрос 3
Для организации переадресации с помощью `RewriteRule` в файле `.htaccess`, нужно учитывать, что вы хотите изменить часть URL и добавить к категории "y". Ваше правило должно захватывать старую часть URL, преобразовывать её и перенаправлять на новый адрес.

Если ваша структура URL всегда будет такой, как указано в примере, вот как это правило может выглядеть:

```apache
RewriteEngine On

RewriteRule ^goods/(.+)$ /catalog/tovary/y$1 [L,R=301]
```

### Объяснение правила:

- `RewriteEngine On` - включает модуль переопределения URL.
- `^goods/(.+)$` - шаблон для захвата URL. Здесь:
  - `^goods/` означает, что URL должен начинаться с "goods/".
  - `(.+)` захватывает все, что идет после "goods/" и сохраняет это в первой группе захвата.
- `/catalog/tovary/y$1` - новый URL, куда будет произведено перенаправление:
  - `y` добавляется перед значением из группы захвата `$1`, что позволяет сохранить окончание старого URL.
- `[L,R=301]` - указывает, что это последнее правило (L) и должно использоваться временное перенаправление 301 (R=301).

### Примечание
Убедитесь, что у вас включен модуль `mod_rewrite` в Apache, и правила `.htaccess` могут перекрывать настройки на сервере.
Вы слишком мудрите 
RewriteRule ^goods(/.+) /catalog/tovary$1 [L,R=301]
RewriteRule ^goods/((\w+).*) /catalog/$2i/$1 [R=301,L]
Похожие вопросы