14

所以我刚刚升级到 Laravel 4,我正在新服务器上进行设置。默认/路由可以正常工作,但其他所有路由都会返回 404 错误。尝试时index.php/route,我得到了请求的数据,这意味着 .htaccess 不起作用。

是的,AllowOverride is set to ALL
是的,我enabled the mod_rewrite module

我尝试了以下 3 种 .htaccess 组合:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

和:

<IfModule mod_rewrite.c>
   RewriteEngine on

   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d

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

和:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

而且,在服务器重新启动等之后,它们都没有工作,我仍然返回 404 错误。

注意:我使用多个域安装相同的 laravel,所以我的公共文件夹是public/site1, public/site2, public/site3. 但是,我将公共路径路由到这些文件夹,所以我不确定这会是问题所在。

有什么想法吗?

4

1 回答 1

21

我忘了在 httpd.conf 中编辑虚拟主机。呸呸呸。添加:

<Directory "/var/www/public/site1">
    AllowOverride All
</Directory>

到每个站点的虚拟主机文件,它工作得很好。嘭嘭嘭。

于 2013-06-04T13:43:30.460 回答