php роутинг. преимущество использования
Всем привет.
Почему, применяя маршрутизацию используют именно такой подход
www.my.site/docs/writes/news?id=7
а не набор GET параметров
www.my.site/index.php?docs=writes&news=7
Ведь короче проверить существование get параметра (isset($_GET['X'])) чем распарсить url и потом проверять наличие определенного пути в нем.
В чем преимущество первого варианта?
Ответы (2 шт):
Скорее всего, тем, что для конечного пользователя эта ссылка более понятна. Тем более можно упростить задачу, используя файл .htaccess
RewriteEngine On
RewriteRule ^docs/([a-zA-Z0-9_-]+)/news?id=([0-9]+)$ index.php?docs=$1&news=$2
Основные причины использования ЧПУ ("Человекопонятный URL"):
- Удобство использования, они более естественны и интуитивно понятны. Такие ссылки обычно позволяют определить структуру приложения, а также содержимое, просто по названию.
- SEO-оптимизация. Использование ЧПУ - один из факторов, который учитывают поисковые системы при ранжировании сайта. Собственно, этого одного фактора достаточно, чтобы решить: использовать ЧПУ или нет.
- Во многих приложениях используется шаблон FrontController с единой
точкой входа, ей делегируется маршрутизация, которую пишете вы сами.
И нет никакой причины писать сложно
?docs=writes&news=7, когда можно написать просто/docs/writes/news/7
Насчет распарсить url - не нужно его парсить. Вы настраиваете правила либо на сервере (к примеру .htaccess для апаче), или у себя в своей единой точке входа. В любом случае вы пишете простой набор правил: 'ссылка' => 'что запустить'.
Ну да, и приведенный пример не совсем корректен:
вы говорите, что пишут так, но так не пишут. Это либо news/7, либо news/article_header , то есть название именно новости текущей, а не ее id