Я хочу, чтобы на моем сайте были «красивые URL-адреса». Также я хочу сделать так, чтобы пользователи, которые вводят «уродливые» URL-адреса, будут перенаправлены на «красивые URL-адреса».Переадресация на 'pretty-urls' не работает
Упрощенный пример:
У меня есть страница data.php?id=123
. Я хочу, чтобы он показывал пользователям, как data/123
, и для кого кто набрал адресную строку data.php?id=123
, он будет перенаправлен на data/123
.
Я попытался следующий код в .htaccess
:
# redirect to pretty url
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^/?data\.php data/%1? [R=301,L]
# convert pretty url to normal
RewriteRule ^/?data/([0-9]+)$ data.php?id=$1 [L]
Однако он не работает, он переходит в бесконечный цикл, как я понял.
Является ли то, что я хотел, и как, если да?
Спасибо! Оно работает! Однако я не понимаю '[A-Z] {3,} \ s/+' часть для чего. – Somnium
, который относится к способу, используемому, например, POST, GET и т. Д. – Prix
Спасибо. Однако я понял, что возникла новая проблема. Рабочий путь PHP изменяется на/data /, и по этой причине ссылки на все ресурсы (изображения, css) разбиты (ссылки относительны, меняются на абсолютные значения, но мне нужно сохранять относительные пути). Может ли это быть исправлено без изменения ссылок на страницах веб-сайта? – Somnium