2016-09-20 6 views
1

Я видел много примеров и много раз пробовал множество решений! Я пытаюсь поместить свой проект на сервер Ubuntu с помощью apache.Удалить index.php из URL, Laravel 5.2

все его хорошо, когда я делаю:

"/MYEXAMPLE/public/index.php/dashboard" 

Но я хочу:

"/MYEXAMPLE/public/dashboard" 

И есть проблема!

«Запрошенный URL/MYEXAMPLE/public/dashboard не найден на этом сервере».

сервер Apache имеет mod_rewrite.

Мои папки проекта:

 - MYEXAMPLE 
    --------- server.php 
    --------- public 
    ----------------.htaccess.php 
    ----------------.index.php 
    ---------------- views 

Мой .htaccess.php:

<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}] 

index.php:

<?php // 


require __DIR__ . '/../bootstrap/autoload.php'; 


$app = require_once __DIR__ . '/../bootstrap/app.php'; 


$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 

$response = $kernel->handle(
     $request = Illuminate\Http\Request::capture() 
); 

$response->send(); 

$kernel->terminate($request, $response); 

Я не хочу, чтобы удалить мои взгляды из общей папки! Когда я использую сервер Wamp, все в порядке, мне не нужно использовать index.php по URL. Теперь я пытаюсь использовать сервер Ubuntu, но URL, не работает, потому что мне нужно index.php

Другой пример: Если я получить доступ

/MYEXAMPLE/public/ 

ИЛИ

/MYEXAMPLE/public/index.php 

It выходит на главную страницу, как я хочу. Проблема его, когда я пытаюсь перейти на другую страницу!

Любые предложения для решения проблемы? Почему все нормально работает с wamp, и когда я пытаюсь использовать сервер Ubuntu, мне нужен index.php по URL-адресу?

Заранее спасибо

+0

док корень Laravel должна быть общая папка. Прочтите примечания по установке. – Blake

+2

Возможный дубликат [не удалось удалить index.php с laravel url ?? в ubuntu 14.04] (http://stackoverflow.com/questions/36001521/unable-to-remove-index-php-from-laravel-url-in-ubuntu-14-04) –

ответ

3

Вы должны point web server to public directory и использовать обычные URL-адреса, как /dashboard вместо /public/index.php/dashboard.

DocumentRoot "/path_to_laravel_project/public" 
<Directory "/path_to_laravel_project/public"> 

Кроме того, вы можете использовать этот working Apache virtual host configuration for Laravel:

<VirtualHost some.app:80> 
    DocumentRoot "/path_to_laravel_project/public" 
    ServerName some.app 
    ServerAlias some.app 

    <Directory "/path_to_laravel_project/public"> 
     Options Indexes FollowSymLinks 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost>