Я новичок в IIS и до сих пор работал только с Apache (с .htaccess). Моя проблема в том, что я получаю только 404 ОШИБКУ с сообщением, что ни одна страница не может быть найдена.
KLEIN. php Фреймворк работает, только если все запросы обрабатываются индексным файлом. Все файлы об этом проекте установлены в каталоге root: Структура файла на сервере / Root
Я не думаю, что это фреймворк, а конфигурация сервера, но я не могу исключить это, поэтому я добавляю примеры кода
РЕДАКТИРОВАТЬ: Файл веб-конфигурации:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Importierte Regel 1" stopProcessing="true">
<match url="." ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="./index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Конфигурация IIS: RISRITE URL IIS
Извлечение из файла индекса:
<?php
//Require Settings & Database
require_once 'settings.php';
require_once 'db.php';
//Load classes
require_once 'inc/User.php';
#######################
# CREATE KLEIN OBJECT #
#######################
require_once __DIR__.'/vendor/autoload.php';
$klein = new \Klein\Klein();
#############################
# DEFINE APP PATH FOR KLEIN #
#############################
define('APP_PATH', '/');
$base = dirname($_SERVER['PHP_SELF']);
if(ltrim($base, '/')) $_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], strlen($base));
###########################
# LOAD THE DEFAULT LAYOUT #
###########################
$klein -> respond(function($request, $response, $service) {
$service -> layout('layouts/default.php');
});
#########
# PAGES #
#########
$klein -> respond('/', function ($request, $response, $service){
$service -> pageTitle = '/ Home';
$service -> render('views/welcome.php');
});
$klein->dispatch();
Извлечение из файла настроек:
<?php
$settings = (object)array(
"root_path" => "/"
);