Пользовательская маршрутизация URL с помощью PHP и регулярных выражений

Я пытаюсь создать очень простую маршрутизацию URL, и мой мыслительный процесс был таким:

Сначала проверьте все статические URLЗатем проверьте URL базы данныхЗатем верните 404, если ни один не существует

Конечно, статические URL-адреса просты, но я пытаюсь найти лучший способ создания динамических. Я бы предпочел не устанавливать статический префикс, несмотря на то, что знал, что это значительно облегчит кодирование.

Вот что у меня сейчас есть:

$requestURL = $_SERVER['REQUEST_URI'];

if ($requestURL == '/') {
    // do stuff for the homepage
}

elseif ($requestURL == '/register') {
    // do stuff for registration
}

// should match just "/some-unique-url-here"
elseif (preg_match("/([\/A-Za-z0-9\-]+)/",$requestURL)) { 
    // query database for that url variable
}

// should match "/some-unique-url/and-another-unique-url"
elseif (preg_match("(^\/[A-Za-z0-9\-]+\/[A-Za-z0-9\-]+)/",$requestURL)) {
    // query database for first and second variable
}

else {
    // 404 stuff
}

Моя проблема в том, что если у меня есть URI "/ register", он будет соответствовать второму оператору elseif, а также выражению regex. Но я хочу избежать необходимости специально исключать каждый статический URL из выражения регулярного выражения, например:

// should match just "/some-unique-url-here"
elseif ((preg_match("/([\/A-Za-z0-9\-]+)/",$requestURL)) &&
    ($requestURL !== '/register') &&
    ($requestURL !== '/')) { 
    // query database for that url variable
}

Какой самый простой способ решить эту проблему? Вероятно, у меня будет 15-20 статических URL, поэтому исключение всех из них будет очень неуклюжим.

Ответы на вопрос(1)

Ваш ответ на вопрос