我使用php slim框架,用url重写这里是我的主机真实的文件结构:
像大多数框架一样,所有的都重写为index.php
/.htaccess
/assets
/index.php
/phpinfo.php
/robots.txt
/usr
/controller
/model
...
这是我的路由器
$app->get('/backstage', $authenticate(), function () use ($uri, $app) {...});
$app->get('/api', $authenticate(), function () use ($uri, $app) {...});
$app->get('/', function () use ($uri, $app) {...});
$app->get('/article', function () use ($uri, $app) {...});
如何在我的路由中禁用/backstage
, /api
和真实文件路径/phpin.php
, /usr
,
并且在路由器中接受/
, /article
?
我很困惑,我应该填写路由器路径还是真实的文件路径?因为真实的文件路径不存在/article
and this is I try
User-agent: *
Disallow: /backstage/
Disallow: /phpinfo.php
首先(假设您使用apache),您需要确保您的。Htaccess 文件正确地将请求指向路由器文件。
——begin .htaccess代码段——
<IfModule mod_rewrite.c>
RewriteEngine On
## direct all requests to Slim router
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ slim-router.php [QSA,L]
</IfModule>
——
我可能没有正确理解你的问题,但是要禁用路由,只需注释掉slim-router.php中添加路由的行。
将条目添加到robots.txt不会阻止浏览器访问URI,它的存在只是为了要求搜索引擎机器人(即。, GoogleBot)不索引特定的URI。参见robotstxt.org和维基百科上的robots.txt条目。
要将路由指向现有文件,可以使用'Slim'View
类(请参阅'Slim'View
文档)。本例期望存在一个名为templates/article.php的文件,该文件将输出/article
路由的内容。使用'Slim'View
类,您还可以向模板文件发送数据,我在下面也演示了这一点。这只是一个基本的例子,有关更复杂的用法,请参阅文档。
//——开始slim-router.php
$app = new 'Slim'Slim();
$defview = new 'Slim'View();
$defview->setTemplatesDirectory(realpath(__DIR__).'/templates');
$app->get(
'/article',
function () use ($app) {
global $defview;
//show the contents of 'templates/article.php', passing optional data to the template file:
$app->view($defview)->display(
'article.php',
array(
'data_one'=>'one',
'data_two'=>2,
'three'=>'3',
)
);
}
);
//——