php если переменная совпадает с dir неустановленная переменная

Я хочу защитить страницы от фактического пути, поэтому я использую переменную uri сервера, чтобы узнать, что пользователь пишет в навигационной панели:

page.php

if ($_SERVER['REQUEST_URI'] == '/path/to/page.php') {
unset($_SERVER['REQUEST_URI']); // nothing will be displayed
} else // page content

И все работает нормально, но теперь проблема в том, что? Id = x или просто добавление? покажет страницу с ошибками.

Есть ли способ добавить ИЛИ ==? ….

Я хочу запретить прямой доступ, потому что я использую маршрутизатор, который включает эти страницы в index.php, например: site.com/page и site.com/page? …

Благодарю вас!

РЕДАКТИРОВАТЬ: Добавить больше информации:

.Htaccess

Options -Indexes

DirectoryIndex index.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

роутер в index.php

// array whitelist for match
$includes = array(
'/home'    => 'dir/to/home.php',
'/other'    => 'dir/to/other/page.php'
);
if ($_SERVER['REQUEST_URI'] == '/')
$_SERVER['REQUEST_URI'] = '/home';

preg_match('/^([\w\/]+)/', $_SERVER['REQUEST_URI'], $matches);
$matches[1] = isset($matches[1]) ? $matches[1] : null;

if(array_key_exists($matches[1], $includes)) {
$content = include($includes[$matches[1]]);
} else $content = include('views/error.php');
return $content;

0

Решение

Я не знаю, понимаю ли я, но если вы поступите так:

if (preg_match('\/path\/to\/page\.php', $_SERVER['REQUEST_URI'] ))
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]