Как проверить, является ли URL домашней страницей с параметрами в php и mod_rewrite - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно написать функцию, чтобы проверить, является ли URL домашней страницей, даже если пользователь использует параметры. Mod_rewrite в Apache включен для поддержки красивых URL.

Я только что натолкнулся на эту функцию, но после того, как попробовал на ссылках на фейсбуке, она возвращает false, когда должно быть true.

function isHomePage(){
    if(trim($_SERVER['REQUEST_URI'])=='/'){
        return true;
    }
}

Текущие результаты:

/ = true
/?id=someid = false
/page/ = false
/page/?id=someid = false

Ожидаемые результаты:

/ = true
/?id=someid = true
/page/ = false
/page/?id=someid = false

1 Ответ

1 голос
/ 09 мая 2019

Есть две проблемы, которые вам нужно решить, если ваше программное обеспечение не знает, где оно находится (что странно):

  1. Получить URL-адрес безо всякого другого.
  2. Определите, является ли это домашней страницей.

Номер один может быть сделан различными способами, но я думаю, что лучше всего использовать parse_url () на $_SERVER['REQUEST_URI'], URI, который был дан для доступа к странице.

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

Это дало бы этот код:

function isHomePage()
{
    $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    return in_array($path, ['/', '/home.html', '/index']);
}

Очевидно, что вам придется изменить массив с URL-адресами домашней страницы в соответствии с вашими потребностями.

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