1

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

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

但是当我尝试这个时,我得到一个 500 Internal Server 错误。我发现问题(.*)出在第四行的部分......但我就是看不出它有什么问题。

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

4

2 回答 2

2

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

RewriteCond %{REQUEST_URI} !^/public
于 2013-03-25T14:20:37.943 回答
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 上对我有用。

于 2013-04-02T13:53:22.610 回答