2012-03-08 6 views
0

Моим корнем для документов является/var/www, и у меня нет виртуальных хостов. Это моя структура папок/вар/WWW:apache2 httpd configuration

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

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

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

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

+0

Omg конечно, не то почему они создают библиотеку приложений: P Большое спасибо – randomKek

+0

не проблема, это Zend Framework или что-то еще – drew010

+0

!? нет моего собственного, не люблю большие фреймворки. Но ehm, теперь я отказался от всех в каталоге/var/application, однако я не хочу, чтобы пользователи получали страницу «без разрешения», а просто перенаправляли на индекс. php of/var/www это возможно? – randomKek

Смежные вопросы