Включая страницы на основе URL в PHP - PullRequest
0 голосов
/ 11 ноября 2011

Это ужасный способ включить страницы на основе URL? (с использованием mod_rewrite до index.php)

if($url === '/index.php/'.$user['username']) {
    include('app/user/page.inc.php');
}

// Upload *
else if($url === '/index.php/'.$user['username'].'/Upload') {
    include('app/user/upload.inc.php');
}

// Another page *
else if($url === '/index.php/AnotherPage') {
    include('page/another_page.inc.php');
}

Я использую $_GET['variables'] через mod_rewrite для

^(.+)$ index.php?user=$1 [NC]

и пара других базовых страниц. Но это только первый аргумент в отношении базовых файлов. Приведенные выше примеры if / else также чувствительны к регистру, что на самом деле не очень хорошо.

Что вы думаете об этом?

Как бы я mod_rewrite эти 2-й / 3-й и т. Д. Аргумент от index.php?

Это было бы полностью несовместимо с SEO с вышеупомянутым примером?

1 Ответ

0 голосов
/ 11 ноября 2011

Я не совсем понимаю ваш вопрос как таковой.
Что вы подразумеваете под "этими 2/3 и т. Д. Аргументами"?

Вы можете сделать те же шаги в более читабельном /поддерживаемый способ следующим образом:

$urls = array(
 '/index.php/'.$user['username']           => 'app/user/page.inc.php',
 '/index.php/'.$user['username'].'/Upload' => 'app/user/upload.inc.php',
 '/index.php/AnotherPage'                  => 'page/another_page.inc.php'
);
$url = $urls[$url];

Если файл '.inc.php' является постоянным, вы можете удалить его из каждого элемента массива и добавить его в конце:
$url = $urls[$url].'inc.php'

В тех же строках вы можете записать массив в обратном порядке (переключить ключи и значения в указанном выше массиве) и использовать preg_grep для его поиска.Это позволит вам выполнять поиск по URL без учета регистра, а также использовать подстановочные знаки.

$url = key( preg_grep("/$url/i", $urls));

См. Здесь для интерактивного интерактивного примера.

Обратите внимание, что это гораздо менее эффективно, хотя для подстановочных совпадений это лучший способ.
(И для большинства страниц неэффективность пригодна для жизни.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...