php, если $ _SERVER SCRIPT_NAME и REQUEST_URI видят файлы со строками запроса как разные файлы

1

Я использую несколько вариантов инструкций php if для анализа содержимого на основе того, какой файл запрашивается, например /index.php (я использую nginx и php-fpm)

<?php if (preg_match('#^/(articles/|index\.php|$)#', $_SERVER['REQUEST_URI']) === 1): ?>

<?php if ($_SERVER['SCRIPT_NAME'] == '/index.php'): ?>

Проще говоря, он работает, если запрос не основан на строке запроса, например /index.php?135897. Когда это происходит, он больше не видит файл как index.php, и поэтому он неправильно анализирует содержимое.

Как я могу заставить эти операторы if подсчитывать строки запроса как один и тот же файл?

  • 0
    Вы ищете strpos . Проверьте, не ложно ли оно ( !== ).
  • 0
    Вы пытались использовать файл .htaccess для маршрутизации ваших запросов?
Показать ещё 1 комментарий
Теги:
nginx

1 ответ

0

Использовать parse_url()

$scriptName = parse_url($_SERVER['SCRIPT_NAME'], PHP_URL_PATH);

<?php if ($_SERVER['SCRIPT_NAME'] == '/index.php'): ?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню