2016-12-05 5 views
0

У меня проблема с Laravel. На intranet Apache 2.4.10, работающем с Debian 8.5, с именем fmbsrv130, я хотел бы установить Laravel Project с именем sentinelle.Laravel и Apache2: не удалось правильно использовать перенаправления

Так что установка Laravel в порядке, я могу получить к ней доступ с http://fmbsrv130/sentinelle/ (у меня есть страница приветствия Laravel). Но если я попытаюсь перейти к http://fmbsrv130/sentinelle/1 (этого не существует), у меня есть 404 из Apache2, в котором говорится: «Запрошенный URL /home/webadmin/sentinelle/public/index.php не найден на этом сервере». Если я пытаюсь получить доступ к http://fmbsrv130/sentinelle/index.php/1 У меня есть 404 из Laravel: «К сожалению, страница, которую вы ищете не может быть найдена 1/1 NotFoundHttpException в RouteCollection.php линии 161:. ...»

rewrite_mod правильно включен в Apache.

Вот конфигурационный файл Apache (000-default.conf в местах доступный):

Alias "/sentinelle" "/home/webadmin/sentinelle/public/" 

    <Directory "/home/webadmin/sentinelle/public/"> 
     Options Indexes FollowSymLinks 
     AllowOverride All 
     Require all granted 
    </Directory> 

Для тестирования, если я пытаюсь изменить файл .htaccess из папки общего доступа Laravel с

RewriteEngine On 
RewriteRule ^.*$ htaccess_tester.php 

(htaccess_tester.php это файл, который используется для проверки содержания .htaccessfile (см его на GitHub) и в настоящее время в общей папке), у меня есть Apache2 сообщение об ошибке 404 The requested URL /home/webadmin/sentinelle/public/htaccess_tester.php was not found on this server.

Это проблема из файла .htaccess или проблема из конфигурации Apache2 или проблема из конфигурации Laravel или права доступа к файлу?

+0

Новый тест: если я изменю конфигурацию Apache2, установив «DocumentRoot/home/webadmin/sentinelle/public», все работает нормально, я могу получить доступ к Laravel с помощью http: // fmbsrv130/и http: // fmbsrv130/1 dis играет 404 сообщение от Laravel. Вы предлагаете? –

+0

Вы перезапустили apache после внесения изменений в файл conf? –

+0

Конечно, я сделал :) –

ответ

0

ОК так что, наконец, я нашел решение, выполнив некоторые изменения: первый один файл .htaccess в общая папка:

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

    RewriteEngine On 
    RewriteBase /sentinelle/ 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

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

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

(Добавление RewriteBase/Sentinelle /)

И второй один был в default.conf Apache файл:

Alias /sentinelle /home/webadmin/sentinelle/public/ 

<Directory "/home/webadmin/sentinelle/public"> 
    AllowOverride All 
    Order allow,deny 
    allow from all 
    Require all granted 
</Directory> 

Это решило проблему, описанную в этой теме, я открою еще один один, потому что теперь у меня проблема с последним «/» по адресу :)

0

ваш mod_rewrite включен на apache2, пожалуйста, убедитесь, что он должен быть включен в .htaccess работу и в файле .htaccess добавить по умолчанию Laravel .htaccess содержание

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

    RewriteEngine On 

    # Redirect Trailing Slashes If Not A Folder... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

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

    # Handle Authorization Header 
    RewriteCond %{HTTP:Authorization} . 
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
</IfModule> 

также, если это не работает, попробуйте удалить ваш index.php из общего каталога и поместить его в корневой каталог на /sentinell и изменить .htaccess для RewriteRule^public/index.php [L], которые должны сделать трюк

+0

Да, я сказал, что mod_rewrite включен в Apache, я знаю, что он работает, потому что, если я изменю DocumentRoot, как объяснено в моем комментарии, все работает нормально. Итак, теперь у меня есть index.php из общей папки, я обновил .htaccess и перечислил содержимое папки –

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

  • Нет связанных вопросов^_^