У меня запущен проект yii2 в IIS7.5, ниже - часть моего веб-сайта. php:
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__) . '/app',
'viewPath' => dirname(__DIR__) . '/resources/views',
'runtimePath' => dirname(__DIR__) . '/storage/framework',
'vendorPath' => dirname(__DIR__) . '/vendor',
'bootstrap' => ['log'],
'controllerNamespace' => 'app\http\controllers',
'aliases' => [
'@bower' => '@vendor/bower-asset',
'@npm' => '@vendor/npm-asset',
],
...
'components' => [
...
'db' => require(__DIR__ . '/database.php'),
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => true,
'rules' => [
'api.shop.index'=>'shop/index',
...
],
],
],
'modules' => require(__DIR__ . '/module.php'),
'params' => $params,
];
ниже - мой web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="my rules" stopProcessing="true">
<match url="." ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" appendQueryString="true"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Если Я установил для showScriptName значение true и перешел по этому URL-адресу:
http://example.com/api/gateway/public/index.php/api.shop.index
, он работает хорошо, если я установил для showScriptName значение false, и перешел по этому URL-адресу:
http://example.com/api/gateway/public/index/api.shop.index
, когда сервер выдает ошибку: Входной файл не указан.