2013-11-23 89 views
1

你好我使用下面的htaccess路由与htaccess以及laravel

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
Options -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

对于做laravel路由。

当我浏览到例如 localdevurl /大众/用户我得到以下错误(404)

未找到

所请求的网址/用户/用户名/网站/ sitefolder /大众/在此服务器上找不到index.php/user。

但是,正如你看到它显示错误中的index.php。当我把index.php放入我的网址时,确实有效。我已经打开了我的apache配置中的所有内容。

httpd.conf

有人能看到我在做什么错在这里?

+0

我假设你从默认值改变了.htaccess。它与原始.htaccess工作吗?https://github.com/laravel/laravel/blob/master/public/.htaccess – hayhorse

+0

没有与原来的它根本没有工作,我没有看到我的公共文件夹。 – Reshad

回答

0

在你的.htaccess文件,要传递请求的index.php的部分之后,而不是让laravel路由系统来处理它,这就是:

RewriteRule ^(.*)$ index.php/$1 [L] 

应作为原始的.htaccess

RewriteRule^index.php [L] 

我曾与在index.php部分同样的问题,我这是怎么解决的:有一个问题,当你有USERDIR模块启用,这似乎是基于错误消息的URL的情况下。

可能的解决方案:

  • 创建Web服务器文件夹的符号链接到用户网站目录的公共laravel项目文件夹。例如:# ln -s ~/public_html/mylaravel4/site/public/ /var/www/mycoolsite 然后你就可以访问http://localhost/mycoolsite
  • 这种替换的RewriteCond和重写规则行:FallbackResource /index.php
0

请确保您有设置AllowOverride设置为全部,而不是没有给你特别的虚拟主机,并设置订购允许,拒绝而不是顺序拒绝,允许在httpd.conf中。

AllowOverride all 
    Order allow, deny