2015-01-08 23 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