Hello,
I am running into an issue on only one of my servers where Slim 3 is only loading the /
path regardless of the URL.
For example, I have the following app which is located in the /app/api/
folder on my web server.
require_once("Slim3/autoload.php");
$app = new \Slim\App([
'settings' => [
'displayErrorDetails' => true
]
]);
$app->get('/', function ($request, $response, $args) {
return $response->write('Hello from /!');
});
$app->get('/test', function ($request, $response) {
return $response->write('Hello from /test!');
});
$app->run();
When I load the app on most of my servers with https://example.com/app/api/test, I get the correct output of Hello from /test!
. However on the server I am having the issue on, I receive a response of Hello from /!
We are using the IIS Rewrite 2.1 module which has the following configuration on all of the servers.
<rules>
<rule name="Slim3 Rewrite" stopProcessing="true">
<match url="(.*\/api\/)(.*)$" />
<action type="Rewrite" url="{R:1}/index.php?q={R:2}" logRewrittenUrl="true" />
</rule>
</rules>
This rewrites the URL as https://example.com/app/api/index.php?q=test. I can confirm from the IIS logs that all the servers are rewriting the URL correctly.
The only difference I can see is when I do a var dump on the request object. I get the following values for the uri object on the server with the issue:
[uri:protected] => Slim\Http\Uri Object
(
[scheme:protected] => https
[user:protected] =>
[password:protected] =>
[host:protected] => example.com
[port:protected] => 443
[basePath:protected] =>
[path:protected] => /
[query:protected] => q=test
[fragment:protected] =>
)
This is what I see on the others server where is is working:
[uri:protected] => Slim\Http\Uri Object
(
[scheme:protected] => https
[user:protected] =>
[password:protected] =>
[host:protected] => example.com
[port:protected] => 443
[basePath:protected] => /app/api
[path:protected] => test
[query:protected] => q=test
[fragment:protected] =>
)
I have reinstalled IIS, IIS Rewrite Module, PHP, and re-downloaded the Slim package. Anyone else experienced this issue or have suggestions on where to look next?