【发布时间】:2016-06-03 00:05:08
【问题描述】:
我在使用 IIS 6.2 的 Windows Server 2012 机器上设置了 Slim 框架,并且 Slim php 框架几乎可以正常工作。 Slim 可以正确处理没有参数的 url,如下所示:
$app->get('/books', function () {
echo "Yay book!";
});
但是一旦我们像这样添加 url 参数(参见:http://docs.slimframework.com/routing/params/):
$app->get('/books/:one/:two', function ($one, $two) {
echo "The first parameter is " . $one;
echo "The second parameter is " . $two;
});
它以 404 失败。我一直在研究我的 web.config 文件,在剖析它之后,它对我来说仍然是正确的,这里是:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="slim" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
还有一点需要注意的是,slim api 位于 web 根目录 /api 的子目录中,这就是 web.config 所在的位置。
【问题讨论】:
-
你怎么称呼路线?
-
我在做
www.example.com/api/books/a/b无论如何,我已经找到了我的问题。这是苗条的版本,如下面我的回答中所述。