2013-03-25 66 views
1

对于我的一个客户,我正在建立一个网站。为此,我使用Laravel框架。 现在我知道最好的做法是将公共目录设置为DocumentRoot,但问题是,我不能。 所以我做了一些研究,我看到你可以使用.htaccess来处理这个小问题。 这对laravel论坛片段如下:这部分htaccess有什么问题

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI} !^public 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 

但是当我尝试,我得到一个500内部服务器错误。 我发现问题是第四行的(.*)部分......但我只是看不出它有什么问题。

所以没有任何人知道什么是错在这个片段中,为什么我得到一个500错误...

回答

2

你几乎没有。 REQUEST_URI包含前导斜杠/。所以,你必须说

RewriteCond %{REQUEST_URI} !^/public 
0

不要改变公共文件夹路径,只需复制通常laravel树,并使用以下的 /public/.htaccess

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

这个工作对我来说L3。