mod_rewrite не знает правильный слаг для данного идентификатора.Ваше приложение, которое генерирует слаг, делает.Таким образом, вы извлекаете слаг из базы данных, используя идентификатор, и сравниваете его с отправленным браузером.Если он не совпадает, введите 301 редирект на полный (если слаг был пуст) или правильный (если слаг не совпадал) URL.Вот так ТАК работает.Откройте эти URL и посмотрите на инспектора сети, чтобы понять, что я имею в виду:
/8077974/avtomaticheski-poluchit-slag-dazhe-edinstvennym-predostavlennym-parametrom-yavlyaetsya-ispolzovaniem-modrewrite
/8077974/avtomaticheski-poluchit-slag-dazhe-edinstvennym-predostavlennym-parametrom-yavlyaetsya-ispolzovaniem-modrewrite
В PHP проверьте$_SERVER
super global, вы должны быть в состоянии найти переменные, содержащие фактический URL, перед тем как переписать.И вы можете отправить 301
заголовок так:
header("Location: /1234/correct-slug", true, 301);