2015-04-29 30 views
2

我敢打賭,這個問題一再被問及,但我似乎無法得到答案。無論如何,這是我的情況。我有一個域,可以說example.com。 Example.com工作正常,一切正常。但是,如果我導航到Example.com/about(適用於本地機器),則會出現404錯誤。但是,如果我轉到example.com/index.php/about,about頁面可以正常工作。我知道這一定是一個mod重寫問題。我已經啓用國防部重寫並重新啓動我的服務器無濟於事。總之,這裏是一些代碼:URL重寫和Laravel 4路由不能在服務器上工作?

虛擬主機:

<VirtualHost *:80> 
    ServerName example.com 
    DocumentRoot "/var/www/example/public" 
    <Directory "/var/www/example/public"> 
    AllowOverride all 
    Allow from All 
    </Directory> 
</VirtualHost> 

這裏是我的.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> 

我使用Ubuntu 14.04上一個數字海洋滴。

謝謝!

+0

快速的問題,是在'/無功/網絡/例子中的.htaccess/public'目錄下或在'/ var/www/example /'中?同時檢查.htaccess文件中的文件權限,因爲它可能無法通過php訪問。 –

+0

它在/ var/www/example/public – codeforfood

+0

所以我敢打賭這是一個文件權限問題。之前我曾與Laravel發生過這件事。根據chmod,chown的位置和方式,很可能您沒有包含隱藏的.htaccess,因爲它以a開頭。 –

回答

0

1) 去到/ etc/apache2的/網站,提供和創建文件,並添加下面

<VirtualHost *:80> 
    ServerName example.com 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html/example/public 
    <Directory /var/www/html/example/public> 
     options Indexes FollowSymlinks 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost> 

2)創建鏈接上面創建的文件並將其粘貼到在/ etc/apache2的/啓用站點-

3)檢查/ etc/apache2的/ MODS,可rewrite.load文件 如果它不存在創建它,並添加下面一行&保存

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so 

創建rewrite.load文件的鏈接,並將其粘貼到etc/apache2/mods-enabled

4)打開/ etc/hosts中 下面添加

127.0.0.1 example.com 

5)sudo service apache2 restart

+0

一種愚蠢的問題,但我該如何做第二步? – codeforfood

+0

如果你沒有權限使用這個命令打開文件管理器根模式 'sudo nautilus'並且做到這一點:) – Alupotha

+0

我只能使用命令在我的服務器上線,它仍然在那裏工作? – codeforfood

0

我想通了怎麼做s,我不得不將我的VirtualHost代碼放在啓用了站點的站點上,而不是放置在可用的站點上。捂臉。

+0

約定是在'sites-available'中創建一個文件,並將該文件的鏈接放在'sites-enabled'中,你可以使用'ln -s path_to_file Path_to_link_location'來檢查我的答案 – Alupotha

相關問題