【发布时间】:2014-02-07 10:20:28
【问题描述】:
好的,所以我花了相当多的时间在谷歌上搜索这方面的建议,尽管之前在 WAMPserver 上在 Laravel 4 中设置了几个测试项目,但我不确定在这种情况下我缺少什么。希望我已经提供了有关我的设置以及迄今为止我尝试过的所有必要细节。
WAMPserver 2.4 版,位于 C:/wamp/
Apache 版本 2.4.4
PHP 版本 5.4.12
启用了 mod_rewrite(我可以在 phpinfo() 中看到它)
项目位于 C:/wamp/www/wsrp/
在 C:/wamp/www/wsrp/public 我有以下 .htaccess 文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
在我的 C:/wamp/bin/apache/Apache2.4.4/conf/httpd.conf 文件中,我取消了对这一行的注释:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
在我的 C:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-vhosts.conf 文件中,我有以下内容:
<VirtualHost *:80>
DocumentRoot "C:\wamp\www"
ServerName localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/wsrp/public"
ServerName localhost
Options Indexes FollowSymLinks
<Directory "C:/wamp/www/wsrp/public">
AllowOverride All
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>
在我的 C:/wamp/www/wsrp/app/routes.php 文件中,我有这个测试路线:
Route::get('test', function() {
echo 'Hello world!';
});
为了测试我正在尝试访问这个 URL:
http://localhost/wsrp/test
这不起作用,它显示了一个内部服务器错误页面。但是,如果我访问此 URL:
http://localhost/wsrp/index.php/test
我看到了我的“Hello world!”显示消息。
显然我希望能够在 URL 中没有 index.php 的情况下处理这个项目,这就是问题所在。
在我看过的所有 SO 问题/答案中,他们都建议添加一个虚拟主机,我已经这样做了,在 C:/wamp/www/wsrp/public 中有正确的 .htaccess 文件/ 我已经完成了,启用了mod_rewrite,我已经完成了,是的.. 不知道还有什么可以尝试,或者我错过了什么。非常感谢您的帮助和建议!
编辑:
忘了说我在C:/wamp/alias/wsrp.conf
中还有一个别名文件Alias /wsrp "c:/wamp/www/wsrp/public"
<Directory "c:/wamp/www/wsrp/public">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Allow from all
</Directory>
【问题讨论】:
-
在您的 vhosts 文件中添加
DirectoryIndex index.php index.html指令 -
尝试将其添加到 vhost 文件中,如下所示:
<VirtualHost *:80> DocumentRoot "C:/wamp/www/wsrp/public" ServerName localhost Options Indexes FollowSymLinks <Directory "C:/wamp/www/wsrp/public"> AllowOverride All Order Deny,Allow Deny from all Allow from 127.0.0.1 DirectoryIndex index.php index.html </Directory> </VirtualHost>并重新启动 WAMPserver,但仍然出现相同的错误。 -
不要将其添加到
Directory块中;就在VirtualHost块中 -
糟糕,将其移至
VirtualHost块中,重新启动服务器,但仍然没有骰子。只是为了检查一下,它不需要位于这个块上方的主 localhost vhost 中吗?另外,DirectoryIndex相对于块的其余部分的顺序是否重要? -
Directory块完全不相关,因为 apache 设置的根目录www包含所需的所有信息,包括 httpd.conf 中默认的AllowOverride all。
标签: php laravel laravel-routing