Это плохая практика запрашивать index.php, чтобы использовать другие скрипты

Это плохо использовать index.php как загрузчик для других скриптов или это имеет значение?

т.е. запрашивающий index.php с различными строками запроса и внутри него, выбирая и включая соответствующий скрипт.

например

www.example.com/?sign-in вместо www.example.com/sign-in.phpwww.example.com/?new-post вместо www.example.com/new-post.php

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

4 ответа

Лучше всего, чтобы apache переписывал все URL index.php или какой-то другой файл, который вы можете использовать в качестве начальной загрузки. Этот загрузчик запускает весь основной код, а затем этот загрузчик может выяснить, какие другие действия предпринять, основываясь на URL.

Каждый фреймворк работает так.

несколько вещей, которые вы можете захотеть сделать в начальной загрузке:

  • настройка, автозагрузка классов

  • настроить соединение MySQL

  • проверить, аутентифицирован ли пользователь для определенного действия

Существует множество руководств по переписыванию URL с помощью Apache: http://www.workingwith.me.uk/articles/scripting/mod_rewrite

Если вы действительно хотите узнать о лучших практиках, я бы посоветовал взглянуть на существующие фреймворки, на то, как они реализуют определенные вещи. например: Zend или Symfony

И да и нет

Проблема в том, что при этом вы потеряете любое значение SEO, например: domain.com/index.php?post=story будет очень плохо ранжироваться на domain.com/post/story . Также ваш index.php очень быстро запутается.

Это говорит о том, что MVC обычно используют index.php, поэтому мой URL будет domain.com/users/edit/123, который является очень логичным URL, но на самом деле называется domain.com/index.php, затем он смотрит на первый параметр "users" создает экземпляр пользовательского контроллера, а затем ищет в нем функцию редактирования и передает "123" (идентификатор пользователя) в качестве первого параметра функции. Если вы не знакомы с MVC, я бы посоветовал codeigniter как начальный, более подробно о codeigniter.

В конце концов, вы просто заново изобретете колесо, создав его с нуля, а использование MVC сделает разработку намного проще.

Вместо того, чтобы направлять все ваши запросы (через htaccess) в index.php, вы также можете разделить маршруты для сопоставления с другими файлами:

/blog/hello-there отображение на blog.php?title=hello-there

/sign/in отображение на login.php?login

и т. д., таким образом, вы создаете свою собственную простую маршрутизацию на основе URL запроса; легко читается и прост в обслуживании.

Это решение подходит для небольших проектов, для больших проектов я советую использовать полный фреймворк, такой как Yii или Symfony.

Это лучший подход. Вы можете взять под контроль свой сайт. Создайте index.php и включать другие файлы по запросу. (Определите константу и используйте ее во включенных файлах и т. Д.)
Но имейте в виду, чтобы свести к минимуму index.php как можно больше.
Также вы можете использовать Apache mod_rewrite создать SEO дружественный URL.

Другие вопросы по тегам