Фэндом


ApacheПравить

Если вы используете Apache, то задействуйте следующий файл .htaccess:

<IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine On
    #RewriteBase /path/to/app
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>


ЗАМЕЧАНИЕ. Если ваш сайт располагается не в корне, вам необходимо раскоментировать выражение RewriteBase и указать путь, соответствующий вашему каталогу, относительно корня сайта.

Если вы используете Apache 2.2.16 или выше, то вы можете использовать директиву `FallbackResource для упрощения .htaccess:

FallbackResource /index.php

ЗАМЕЧАНИЕ. Если ваш сайт не располагается в корне, вам необходимо скорректировать путь до вашего каталога относительно корня.

nginxПравить

Если вы используете nginx, сконфигурируйте ваш виртуальный хост таким образом, чтобы все несуществующие ресурсы направлялись в index.php:

server {
    #корень сайта: перенаправляется в загрузочный скрипт приложения
    location = / {
        try_files @site @site;
    }

    #все прочие расположения: вначале проверяется существование файлов, а затем идём в наш фронт-контроллер
    location / {
        try_files $uri $uri/ @site;
    }

    #возвращаем 404 для всех php-файлов, т.к. у нас есть фронт-контроллер
    location ~ \.php$ {
        return 404;
    }

    location @site {
        fastcgi_pass   unix:/var/run/php-fpm/www.sock;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $document_root/index.php;
        #раскоментировать при использовании https
        #fastcgi_param HTTPS on;
    }
}

IISПравить

Если вы используете Internet Information Services из Windows, вы можете использовать следующий пример файла web.config:

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <defaultDocument>
            <files>
                <clear />
                <add value="index.php" />
            </files>
        </defaultDocument>
        <rewrite>
            <rules>
                <rule name="Silex Front Controller" 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" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

LighttpdПравить

Если вы используете lighttpd, воспользуйтесь примером simple-vhost в качестве отправной точки:

server.document-root = "/path/to/app"

url.rewrite-once = (
    # configure some static files
    "^/assets/.+" => "$0",
    "^/favicon\.ico$" => "$0",

    "^(/[^\?]*)(\?.*)?" => "/index.php$1$2"
)

PHP 5.4Править

PHP 5.4 поставляется вместе со встроенным веб-сервером для разработки. Этот сервер позволяет вам запускать Silex вообще без конфигурирования. Однако, для обслуживания статичных файлов вам нужно убедиться, что ваш фронт-контроллер возвращает false в этом случае:

// web/index.php

$filename = __DIR__.preg_replace('#(\?.*)$#', , $_SERVER['REQUEST_URI']);
if (php_sapi_name() === 'cli-server' && is_file($filename)) {
    return false;
}

$app = require __DIR__.'/../src/app.php';
$app->run();

Если ваш фронт-контроллер располагается в файле web/index.php, вы можете запустить сервер из командной строки:

$ php -S localhost:8080 -t web web/index.php

Теперь приложение должно быть доступно по адресу http://localhost:8080.

ЗАМЕЧАНИЕ. Это сервер только для разработки. Его использование для реальных проектов НЕ РЕКОМЕНДУЕТСЯ.

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на Фэндоме

Случайная вики