我在WAMP上安装了Laravel 4的本地副本,windows 7 64位,运行apache2.4和php5.4。我已经为这个项目设置了一个虚拟主机,如下所示:
<VirtualHost *:80>
DocumentRoot "c:/Google Drive/project/public"
ServerName project
<directory "c:/Google Drive/project/public">
Options Indexes FollowSymLinks
AllowOverride all
Require all granted
</directory>
</VirtualHost>
当我尝试访问project/
时,一切正常工作。当我尝试从project/index.php?home
访问默认的Home控制器时,它也能正常工作。然而,当我试图从project/home/
访问默认的Home控制器时,我得到了Laravel 4抛出的NotFoundHttpException
。
我使用Laravel 4提供的默认.htaccess
文件:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
在没有Laravel 4抛出NotFoundHttpException
的情况下从URL中删除index.php的正确方法是什么?
你试过这个吗,从Laravel文档(参见安装->漂亮的url)?
"如果Laravel附带的。htaccess文件不能在你的Apache安装中工作,试试这个:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
这似乎对我有用。我也在Win7 64位等上使用WAMP(实际上是XAMPP),但我不使用虚拟主机。