2015-01-08 50 views
0

我正在使用laravel框架。我需要使用給定url的名稱訪問控制器方法。我的路線代碼看起來象下面這樣:如何訪問給定url的控制器方法

<?php 
     Route::get('home','[email protected]'); 
    ?> 

HomeController.php這個樣子

<?php 

    class HomeController extends BaseController { 
     public function showWelcome() 
     { 
      return View::make('hello'); 
     } 
    } 

    ?> 

我的問題是能不能訪問showWelcome的方法,同時也讓喜歡http://example.com/home

網址

但我能夠訪問的網址http://example.com/index.php/home

如何解決這個問題..任何人都可以幫助我做到這一點..提前感謝。

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

你看到了什麼,當你訪問http://example.com/home?任何錯誤? – violator667

+0

是的..我得到了像**這樣的錯誤在這個服務器上找不到請求的URL /example.com/home。** ..但是如果我喜歡**/example.com/index.php/home**意味着它應該工作.. – sankar

+0

行,所以你看到默認的SERVER 404頁面 - 不是Laravel 404頁面?這表明問題出在.htaccess文件或服務器虛擬主機配置中。你有沒有對.htaccess做任何改變? – violator667

回答

1

這應該是一個評論,但我現在沒有足夠的聲譽。

這是一個重寫問題,看看http://laravel.com/docs/4.2/installation#pretty-urls來檢查你有沒有正確的配置。

如果您使用的是Apache並且您的.htaccess不起作用,那是因爲mod_rewrite已關閉。

希望這會有所幫助。

+0

我認爲這確實有資格作爲答案。也許從您鏈接的頁面添加代碼示例或引用。 – lukasgeiter

0

起初你應該打開mod_rewrite。

如果它不工作,然後編輯public/.htaccess和試試這個:

Options +FollowSymLinks 
RewriteEngine On 

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

可否請你告訴我,我必須打開mod_rewrite – sankar

+0

請從'apache \ apache2.4.9 \ conf'打開httpd.conf文件。然後找到這一行:'#LoadModule rewrite_module modules/mod_rewrite.so'。只要刪除「#」。所以這一行將是:'LoadModule rewrite_module modules/mod_rewrite.so' –

+0

am使用wamp服務器.. – sankar