4

http.conf 有 mod rewrite 未注释

所以没有自定义路线在#laravel 有人提到这将是因为mod rewrite 在这里不起作用是我的设置:

laravel.conf 有以下代码:

Alias /laravel/ "C:\BitNami/frameworks/laravel/public/"
Alias /laravel "C:\BitNami/frameworks/laravel/public"

<Directory "C:\BitNami/frameworks/laravel/public">
Options +MultiViews
AllowOverride None
<IfVersion < 2.3 >
Order allow,deny
Allow from all
</IfVersion>
<IfVersion >= 2.3>
Require all granted
</IfVersion>
</Directory>

如果我取消注释这些行:

#RewriteEngine On
#RewriteRule ^/$ /laravel/ [PT]

然后主要路线将映射到

http://localhost/ 

而不是

http://localhost/laravel 

这是可取的,但次要于主要问题

公共文件夹内的 .htaccess 有这个:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
RewriteEngine On
 RewriteBase /laravel
 </IfModule>

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

这是我在 routes.php 中的测试代码:

Route::get('test',function(){
return 'test worked';
});

这应该解决

http://localhost/laravel/test 

但我得到一个 404 错误

4

2 回答 2

0

您的 .htaccess 文件应如下所示。

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...    
    RewriteRule ^(.*)$ public/$1 [L]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
于 2014-09-28T16:00:19.080 回答
0

RewriteBase 和 RewriteEngine 被定义了两次。使您的 .htaccess 文件如下所示:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteBase /laravel
</IfModule>

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

如果可能,最好改用 Apache 虚拟主机。

于 2013-02-10T13:08:31.847 回答