php if变量匹配dir unset变量



我想保护页面不受实际路径的影响,所以我使用服务器uri变量来知道用户在导航栏中写了什么:

page.php

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

它运行得很好,但现在的问题是?id=x还是只是添加?将显示有错误的页面。

有没有办法加OR==?。。。。

我想阻止直接访问,因为我使用的路由器包括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;

我不知道我是否理解,但如果你这样做:

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

相关内容

  • 没有找到相关文章

最新更新