Как написать RewriteRule в файле .htaccess, чтобы передать переменную?

  • 10 сентября 2023 г. 19:16
Ответы на вопрос 3
Чтобы передать переменную в RewriteRule в файле .htaccess, вы можете использовать флаг QSA (Query String Append). 

Пример для передачи переменной "id":

```
RewriteRule ^micronaushnik-arenda_(.*)\.html$ index.php?id=$1 [QSA]
```

В данном примере, если в адресной строке будет указан URL вида "micronaushnik-arenda_1001.html", то он будет перенаправлен на "index.php?id=1001". При этом с помощью флага QSA будут сохранены все остальные параметры запроса, если они есть.

Чтобы настроить правила в файле .htaccess, чтобы страница с URL "micro59.ru/index.php?id=100" открывалась по адресу "micro59.ru/micronaushnik-arenda_1001.html", вы можете использовать следующий RewriteRule:

```
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteRule ^index\.php$ micronaushnik-arenda_%1.html [R=301,L]
```

В данном примере, если в адресной строке будет указан URL "index.php?id=100", то он будет перенаправлен на "micronaushnik-arenda_1001.html" с кодом ответа 301 (перемещено навсегда). Параметр "id" из URL будет сохранен и добавлен в новый URL. Флаг "L" указывает, что после этого правила дальнейшие правила обработки не применяются.
^([a-zA-Z0-9-_.]+).html$ 
 /index.php?id=$1
Похожие вопросы