конфигурация apache2 httpd - PullRequest
0 голосов
/ 08 марта 2012

Мой корень документа - / var / www, и у меня не включены виртуальные хосты.Это моя структура папок / var / www:

index.php
classes (external)
controllers
models
files (img, js, css)
views (pages, components)

Как вы можете видеть, я использую шаблон контроллера вида модели.Теперь мне нужна правильная конфигурация, которую я должен использовать в своем httpd.conf, чтобы определить, что только папка с файлами может быть принята, а другая - нет, чтобы предотвратить сообщения «Не найдено» или прямой доступ php.Как мне это настроить?

Это мой текущий httpd.conf

ServerSignature Off
ServerTokens Full

# Settings for server @ port 80.
<VirtualHost *:80>
    ServerName <url>
    DocumentRoot /var/www
    DirectoryIndex index.php

    # No one has access to the main directory.
    <Directory />
        Order Deny,Allow
        Deny from all
        Options None
        AllowOverride None
    </Directory>

    # Configure the main directory
    <Directory /var/www>

        # Everyone has access to the main directory.
        Order Allow,Deny
        Allow from all
        Options FollowSymLinks
        AllowOverride None

        # Enable clean urls.
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php/$1 [L]
    </Directory>
</VirtualHost>

Спасибо за помощь:)

1 Ответ

1 голос
/ 08 марта 2012

Если возможно, было бы идеально, чтобы ваши контроллеры, просмотр сценариев и другого кода, связанного с приложением, не входили в /var/www, а вместо этого помещали бы его в /var/application или что-то подобное.

Тогда вы нене нужно никаких правил переписывания, чтобы запретить доступ ко всему, кроме файлов.Если вы когда-нибудь хотели добавить доступ к новой папке (например, /var/www/css), вам, вероятно, придется что-то сделать, чтобы сделать ее доступной.Или у вас обратная ситуация, когда вы явно отказываете в папках, к которым вы не хотите получать доступ.Это работает, но если .htaccess когда-либо нарушается или кто-то забывает о правилах перемещения на новый сервер, тогда у вас есть больше работы.

В index.php определите некоторую константу, которая сообщает, где находятся файлы (например, define('APPLICATION_PATH', '/var/application');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...