Pjeroo
@Pjeroo
Веб-разработчик

Как правильно организовать структуру, чтобы пользователь обращался только к index.php?

Добрый день. На данный момент имею следующую структуру:

- index.php
- profiles.php
- preferences.php
- main.php

Собственно возникла идея, чтобы подгружать страницы с контентом в главный файл index.php при помощи include(); таким образом, что получится, что пользователь будет обращаться только к странице index.php, а остальное будет для него недоступно. Что-то вроде этого:
- src
-- profiles.php
-- preferences.php
-- main.php
-- .htaccess
- index.php


.htaccess
deny from all

index.php
<?php
if (isset($_GET['mode']))
    switch ($_GET['mode'])
    {
        case 'profile':
        include("src/profile.php");
        break;
        case 'preference':
        include("src/preferences.php");
        break;
        case 'main':
        include("src/main.php")
        default:
        echo "test";
        break;
    }
?>


Собственно хотелось бы узнать подводные камни данного подхода, является ли такой подход дурным тоном и если можно, то некоторые рекомендации как правильно засунуть все в один файл и надо ли это делать. Фреймворки не предлагать. Заранее благодарю за внимание.
Pjeroo на форуме Сообщить модератору о нарушении
  • Вопрос задан
  • 2379 просмотров
Пригласить эксперта
Ответы на вопрос 6
IlyaEvseev
@IlyaEvseev
Opensource geek
Не надо вкладывать src в публичную папку. Должны быть папки public и library.
В public только index.php, стили, js, изображения и т.д., а весь php-код в соседней library, куда Веб-сервер вообще не смотрит.
Ответ написан
Комментировать
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
Почитайте про rewrite и FrontController Pattern.
Ответ написан
Комментировать
NorthDakota
@NorthDakota
PHP програмист
Почитайте про единую точку входа в приложение
Ответ написан
Комментировать
index
<?php
	$page = isset($_GET['page']) ? $_GET['page'] : '';
	switch($page){
		case 'about':
			echo 'About';
			//require_once('...');
		break;
		case 'company':
			echo 'Company';
			//require_once('...');
		break;
		default:
			echo 'Hello world!';
			//require_once('...');
	}
?>

.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?page=$1 [L]

example.com
example.com/about
example.com/company
Ответ написан
Рекомендую к прочтению, пониманию и использованию эту замечательную статью

Из плюсов можно, вдруг, дорасти до использования фреймворков и повышению своего проф. уровня
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы