2016-03-15 102 views
0

there 我剛剛在laravel 5.2中創建了一個新項目。那麼我已經成功地從我的項目的網址中刪除public/index.php在Windows中工作正常。 但是,當我在var/www/html裏的ubuntu裏拷貝同樣的項目爲/var/www/html/myproject。並啓用apache2 rewrite_mode。但是,如果不將index.php放入網址中,它就無法工作。它的工作只有公共而已。 http:://localhost/myproject/index.php/cms(正常工作),但 http:://localhost/myproject/cms(它不工作)???任何建議? 我的代碼是無法從laravel url中刪除index.php?在Ubuntu 14.04

route.php

define("PREFIX", "cms"); 
Route::get(PREFIX . '/login', 'Auth\[email protected]'); 

它精細 還我已經削減公共文件夾中的所有文件複製到根目錄下,編輯index.php文件作爲

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

通過

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

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

通過

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

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> 
+0

似乎沒有加載mod_rewrite,或者'AllowOverride All'不在httpd.conf中,所以.htaccess文件被忽略。確保爲您的虛擬主機或默認主機配置設置[AllowOverride](http://httpd.apache.org/docs/current/mod/core.html#AllowOverride)。 – drew010

+1

謝謝。它解決了! –

回答

3

我就遇到了這個和foud上http://laravel.io的溶液。

如果你使用Apache 2.4.7 apache2.conf被設置爲不允許.htaccess覆蓋設置了AllowOverride無:

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
</Directory> 

您可以在apache2.conf改變這一狀況,但不建議這樣做。相反,這是否覆蓋VirtualHosts文件爲您的網站ie。網站可用/ yoursite.com.conf。類似這樣的:

<Directory /var/www/html/yoursite.com/laravelappinstall/public/> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

請確保您已啓用重寫模塊即。 sudo a2enmod重寫。重新啓動您的Web服務器即。 sudo服務apache2重啓。

來源:http://laravel.io/forum/09-15-2015-removing-indexphp-from-url-laravel-5116

+0

是的,我感謝您的幫助。解決了 –

+0

太好了。如果您有機會,請檢查此解決方案。謝謝! –

0

•轉到mainproject /公共>>

a. .htacess 
b. favicon.ico 
c. index.php 
d. robots.txt 
e. web.config 

1.cut從公用文件夾這5個文件,然後在這是最主要的項目文件夾中粘貼意味着從公衆的側文件夾... mainproject /文件粘貼,開放的index.php後

2.Next,修改

•require __DIR__.'/…/bootstrap/autoload.php'; to 
•require __DIR__.'/bootstrap/autoload.php'; 

modify 

$app = require_once DIR.'/../bootstrap/app.php'; to 
$app = require_once DIR.'/bootstrap/app.php';