Как создать рабочий url без создания html (php) документа?

177
01 декабря 2018, 02:10

Во многих интернет-магазинах замечаю, что url страницы товара является латинским транслитом наименования этого товара. И вряд-ли разработчики создают страницы под каждый из десятков тысяч товаров. Я видел решения с # после урла, с get хвостами, но это все не то. Подскажите пожалуйста новчику, как это реализуется? В чем отличие от стандартного метода создания страницы? И возможно ли такие "сгенерирлванные" страницы продвигать в Seo?

Answer 1

Интерпретацией адресов страниц, как сказано выше, занимается сервер и программное обеспечение сайта. Для каждой серверной реализации есть собственный модуль, реализующий подобную функциональность.

На сервере IIS такая функциональность реализуется бесплатным модулем «URLRewriter». В то же время для сервера Apache существует модуль «mod_rewrite», который настраивается через файл .htaccess.

Например, указав следующий код, веб-мастер сможет в PHP через массив $_SERVER['REQUEST_URI'] получать все переданные параметры, а точкой входа по любому запросу будет index.php[26].

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Семантический URL

Answer 2

В базе у таблицы товаров, у каждого товара, к примеру, может быть поле - alias или url. Потом в бэкэнде разработчик пишет экшн контроллера, где принимается параметр - этот самый url или алиас и делается запрос в БД - если товар с такой меткой находится, то вытаскивается и под него рендерится страница.

Все это делается легко на php-фреймворках, самые популярные это YII2, Laravel. Там можно прописывать свои правила роутинга, вместо id товара подставляют этот самый алиас и все ок. И конечно же, такие страницы легко продвигать в поисковых системах, ибо сервер возвращает обычный html.

READ ALSO
Как передавать cookie между файлами в библиотеке Ratchet websocket

Как передавать cookie между файлами в библиотеке Ratchet websocket

Кто работал с данной библиотекой - знает, куки браузера можно получить только при событие onOpen доступном в chatphp только там можно получить данные...

148
не работает 4 цикл C++

не работает 4 цикл C++

Показательный пример, почему не надо пихать объявления сразу нескольких переменных в одну строку

252
loadFromFile SFML C++

loadFromFile SFML C++

Вообщем

217
Запрос SELECT к SQLite ничего не возвращает

Запрос SELECT к SQLite ничего не возвращает

Решил я прикрутить к своему проекту файловую базу данныхНу и выбрал как самый простой вариант - sqlite

178