2015-06-25 5 views
2

Я пытаюсь получить приложение Laravel 4, установленное во вложенной папке корневого каталога для одного из моих пользователей. Я знаю, что существуют серьезные проблемы безопасности, связанные с доступом всей сети через Интернет. Я планирую обратиться к ним отдельно, когда я пойму, как это сделать.Как использовать приложение Laravel в подпапках Apache User Directory

Я пробовал каждую комбинацию псевдонимов Apache и переписывал правила, о которых я могу думать, но ничего не работает. Вот моя структура каталогов:

/home/username/public_html 
    .htaccess 
    my_laravel_app/ 
     app/ 
     bootstrap/ 
     public/ 
      .htaccess 
      index.php 
      robots.txt 
      ...etc (standard Laravel 4 public folder contents) 
     vendor/ 
     ...etc (standard Laravel 4 files and folders) 

Первого .htaccess файл, один в списке непосредственно под пользователями public_html каталога, содержит следующее:

AuthType Basic 
AuthName Private 
Authuserfile /path/to/.htpasswd 
Require valid-user 

Второго .htaccess является стандартным Laravel 4 .htaccess файлом. Он содержит следующее:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 
</IfModule> 

Я хотел бы по существу рассматривать этот my_laravel_app/public каталог в качестве корневой директории, так что приложение функционирует Laravel тот же путь, что если бы для нормальной установки Laravel непосредственно на домене.

Я считаю, что мне просто нужно отредактировать первый .htaccess файл, чтобы содержать правила перезаписи, которые отправляют любой запрос /my_laravel_app в my_laravel_app/public, но я не могу заставить это работать. Может ли кто-нибудь помочь?

+0

Заключительный текст, если я не ошибаюсь, должен быть '/ my_laravel_app/public/index.php'. О, и вы также можете изменить условие перезаписи. Я сделал это на другом сервере, дайте мне посмотреть его – MiltoxBeyond

+0

Возможный дубликат _ [Как установить Laravel 4 в подпапку веб-хостинга без публичной публикации/приложения/папки?] (Http://stackoverflow.com/questions/16683046/ как-установить-laravel-4-to-a-web-host-subfolder-without-publicly-exposing-app) _ И вы можете найти этот ответ полезным: http://stackoverflow.com/a/27350400/ 1947276 –

ответ

0

может отличаться в зависимости от настроек, но базовая конфигурация является:

RewriteBase/
RewriteCond %{DOCUMENT_ROOT}/my_laravel_app/public/%{REQUEST_URI} -d [OR] 
RewriteCond %{DOCUMENT_ROOT}/my_laravel_app/public/%{REQUEST_URI} -f 
RewriteRule . public/%{REQUEST_URI} [L] 

RewriteRule . public/index.php [L] 

И положить внутрь вашей my_laravel_app как .htaccess, чтобы ограничить сложность условий. Вы надеетесь получить эту идею.

+0

Спасибо. Не могли бы вы пояснить, что вы подразумеваете под «И вставьте свой my_laravel_app в качестве .htaccess, чтобы ограничить сложность условий». Вы говорите, что код, который вы показываете, должен быть помещен в файл .htaccess в каталоге 'my_laravel_app'? – flyingL123

+0

Это было бы идеально внутри my_laravel_app. Не обязательно, но если вы этого не сделаете, условия должны быть изменены, чтобы включить проверку на предмет запроса документа в папке larvel. – MiltoxBeyond