2015-12-10 75 views
0

我認爲這是一個容易的,但我真的很困惑自己。Laravel資產,路線和頁面

  1. myproject.com/index.php顯示我的項目主頁
  2. myproject.com顯示我的項目主頁了。
  3. 在第一種情況下,路由後工作正常(即:myproject.com/index.php/register)
  4. 在第二種情況下,路由失敗後(即:myproject.com/register)出現以下錯誤:請求的URL /註冊在此服務器上找不到。

的這樣,因爲,我想,我不得不重新路線myproject.com每個請求myproject.com/index.php

應用程序/配置/ app.php:

'url' => 'http://127.0.0.1/public', 

等/ httpd的/ CONF/httpd.conf中:

<VirtualHost *:80> 
    DocumentRoot "/var/www/html/myproject/public/" 
    ServerName myproject.com 
</VirtualHost> 

在主機文件中沒有配置任何內容。

目標:我怎樣才能重新路由從所有請求myproject.commyproject.com/index.php與隱瞞用戶的index.php一部分?

遊客應該看到:myproject.com ,但我想他們真正達到:myproject.com/index.php

解決方法:

<VirtualHost *:80> 
    DocumentRoot "/var/www/html/myproject/public/index.php" 
    ServerName myproject.com 
</VirtualHost> 

結果:我不能達到資產,(js,css文件)404結果,因爲我的瀏覽器不允許達到myproject.com/public/。在此虛擬主機設置中,Root已被設置爲myproject.com/public/index.php

+0

您是否忘記在Vhost配置中的''指令中添加'AllowOverride all'? –

回答

2

檢查.htaccess文件存在於你的公共目錄。

如果沒有檢查Pretty Url部分。

另外請確保您將<Directory>指令放在您的虛擬主機配置中,以確保安全。

如:

<Directory "/var/www/html/myproject/public/"> 
    AllowOverride All 
    Allow from All 
</Directory> 

關於app.php的'url' => 'http://127.0.0.1/public',是非常肯定的/public是有點多餘。

'url' => 'http://127.0.0.1',應該工作正常。

+0

漂亮的網址部分被選中。目錄部分已經解決了我的問題。謝謝。 –

+0

不客氣。很高興知道它幫助:) –

1

你需要重寫規則如下:

Options +FollowSymLinks 
RewriteEngine On 

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

Laravel文檔:http://laravel.com/docs/5.1#pretty-urls

+0

謝謝,但這已經存在。 –