Добрый день, натягиваю на HTML шаблон админку и весь остальной функционал с нуля.
В админке есть возможность создания статей. Это уже реализовал, так же, при создании статьи сделал возможность указать краткую ссылку на эту статью, например: сайт.ру/какой-то-текст-чаще-всего-название-статьи-на-транслите
Но теперь я столкнулся с такой проблемой, как незнание каким образом такие ссылки обрабатываются.
Есть смутное понимание как это должно делаться (.htaccess + index.php), но ничего более в голову не приходит.
Прошу помочь с решением этой проблемы.
1. Какая CMS
А мысль по .htaccess правильная.
Хорошо бы иметь короткий домен для коротких ссылок (например см.ру) и сделать его алиасом для основного.
Тогда в .htaccess правило создать будет проще и редирект сделать проще (в зависимости от CMS).
shmatuan, это то понятно, но
нужно, чтобы в адресной строке не было такого, типа "сайт.ру/index.php?url=какой-то-текст-чаще-всего-название-статьи-на-транслите", ведь именно так можно будет поймать ссылку на стороне сервера, верно?
shmatuan, проблема в том, что как-то нужно поймать "какой-то-текст-чаще-всего-название-статьи-на-транслите" из ссылки вида "сайт.ру/какой-то-текст-чаще-всего-название-статьи-на-транслите" Именно на стороне сервера
Объясню более наглядно.
Вот я создал статью, допустим про солнышко, указав при этом короткую ссылку "sun", то есть она будет иметь вид "сайт.ру/sun"
Сейчас при переходе на "сайт.ру/sun", мне естественно будет выдаваться ошибка 404, т.е страница не найдена. Мне на стороне сервера нужно ловить подобные ссылки, в этом то и заключается трудность. Далее уже понятно, что я буду искать в бд запись со значением в поле url = 'sun' UPD: речь идет о ЧПУ и как его реализовать
Не знал как это называется, нагуглил, что это называется ЧПУ (человеко понятный урл), далее загуглил как сделать ЧПУ и нашел решение, спасибо всем за быстрые ответы, хоть и не принесшие результаты. Наверное это потому, что я не понятно объяснил.
im_dimas, тогда самым простым решением будет иметь короткий домен алиас основного домена, а в htaccess сделать правило, если обращение к этому короткому домену, то обрабатывать через index.php с параметром link например.
Что-то подобное
И в index.php строить уже свой роутер, который будет обрабатывать параметры link и q, И если по параметру link найдено то, что нужно отобразить - сделать 301 редирект на страницу с полным url.
Если нет, материала для отображения по короткой ссылке, то без редиректа показать 404 страницу с указанием соответствующего кода header
Через htaccess с помощью регулярных выражений перенаправляем урлы на свой php скрипт(например, index.php), в скрипте уже разруливаем куда надо.
Погуглите htaccess mod_rewrite.
Не знал как это называется, нагуглил, что это называется ЧПУ (человеко понятный урл), далее загуглил как сделать ЧПУ и нашел решение, спасибо всем за быстрые ответы, хоть и не принесшие результата. Наверное это потому, что я не понятно объяснил.