Какое правило нужно добавить в файл htaccess для выполнения определенной задачи?

Как настроить файл .htaccess, чтобы преобразовывать URL-адреса сайта согласно вашему образцу. Необходимо, чтобы страница открывалась по адресу <a href="https://articles.site.com/category/slug/" rel="nofollow">https://articles.site.com/category/slug/</a>, при этом фактический путь выглядел как articles.php?category=categ_name&slug=title_slug. Кроме того, должны быть доступны и другие адреса <a href="https://articles.site.com/category/" rel="nofollow">https://articles.site.com/category/</a> и <a href="https://articles.site.com/" rel="nofollow">https://articles.site.com/</a>. Ваш текущий код не работает, поэтому как правильно настроить данное правило?
  • 10 июля 2024 г. 11:12
Ответы на вопрос 2
Для выполнения данной задачи необходимо добавить следующее правило в файл .htaccess:

```apache
RewriteEngine On
RewriteRule ^category/([^/]+)/([^/]+)/?$ articles.php?category=$1&slug=$2 [L]
RewriteRule ^category/([^/]+)/?$ articles.php?category=$1 [L]
RewriteRule ^$ articles.php [L]
```

Это правило будет перенаправлять запросы наподобие "https://articles.site.com/category/slug/" на "articles.php?category=categ_name&slug=title_slug", запросы типа "https://articles.site.com/category/" на "articles.php?category=categ_name" и запросы типа "https://articles.site.com/" на "articles.php". Не забудьте включить модуль Rewrite в настройках Apache, если это еще не сделано.
RewriteCond %{HTTP_HOST} ^articles\.site\.com [NC] 
RewriteRule ^([^/]+)(?:/?([^/]*)/?)?/$ %1/articles.php?category=$1&slug=$2 [NC,QSA]

так сделал, вроде бы работает, но не уверен, что это правильно
Похожие вопросы