这部分htaccess出了什么问题

时间:2013-03-25 13:48:14

标签: php .htaccess rewrite laravel

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

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

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

所有人都知道这个片段有什么问题,为什么我会收到500错误...

2 个答案:

答案 0 :(得分:2)

你快到了。 REQUEST_URI包含前导斜杠/。所以你必须说

RewriteCond %{REQUEST_URI} !^/public

答案 1 :(得分:0)

不要更改 public 文件夹路径,只需复制常用的laravel树并使用以下内容 /public/.htaccess

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

这对我来说很有用。