Ответ
URL rewrite (перезапись URL) — это технология на стороне веб-сервера (например, Apache, Nginx) или приложения, которая преобразует входящий URL-запрос в другой внутренний URL перед его обработкой. Цель — сделать адреса более понятными для пользователей и поисковых систем (SEO).
Зачем это нужно?
- Человеко-понятные URL (ЧПУ): Преобразовать
example.com/product.php?id=123&cat=booksвexample.com/books/123-fantasy-novel. - SEO-оптимизация: Ключевые слова в URL положительно влияют на ранжирование.
- Сокрытие технологий: Скрытие реальных путей к файлам (
.php,.asp) и параметров. - Реструктуризация сайта: Перенаправление старых URL на новые без изменения кода приложения.
Пример настройки в Nginx:
location /products/ {
# Правило: /products/123 -> /product.php?id=123
rewrite ^/products/(d+)$ /product.php?id=$1 last;
}
Пример настройки в Apache (.htaccess):
RewriteEngine On
# Правило: /article/title-here -> /article.php?slug=title-here
RewriteRule ^article/([a-z0-9-]+)$ article.php?slug=$1 [L]
Важные нюансы:
- Производительность: Слишком сложные правила или их большое количество могут замедлить обработку запросов.
- Циклические перенаправления: Неправильные правила могут привести к бесконечным внутренним перезаписиям или редиректам.
- Тестирование: Требует тщательного тестирования, так как влияет на все входящие запросы.