我在OS X 10.9上使用Bitnami MampStack。因为这是一台继承的笔记本电脑,我不得不在MAMP下设置Apache来监听端口8888.我调整了它以便在8889上监听并在我的httpd.conf
文件中添加以下内容作为VirtualHost:
<VirtualHost *:8889>
DocumentRoot "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public"
ServerName localhost
<Directory "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public">
Require all granted
</Directory>
</VirtualHost>
我按照示例here(所以我的所有源代码都与他匹配)。索引刀片可以使用,但edit
,create
和delete
刀片会返回404。
在测试时,我发现http://localhost:8889/create
返回了404,但http://localhost:8889/index.php/create
返回了正确的视图。此外,浏览http://localhost:8888/codebright/public/create
按预期工作。
所以......我对Laravel和MVC框架一般都是新手,有什么方法可以让这个安装在8889端口正常运行?
答案 0 :(得分:1)
您的虚拟主机正常工作,您现在必须确保您的公共/ .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>
这是重写您的网址的文件,从中移除/index.php
。
修改强>
另外,检查你是否安装并启用了mod_rewrite,因为你的.htaccess
在Ubuntu / Debian中使用它来启用它,你必须执行:
sudo a2enmod rewrite
答案 1 :(得分:0)
通过this计算出来。我在AllowOverride All
部分中遗漏了<Directory>
。更新了httpd.conf
:
<VirtualHost *:8889>
DocumentRoot "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public"
ServerName localhost
<Directory "/Applications/mampstack-5.4.26-0/apache2/htdocs/codebright/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
我以为我可能在RewriteEngine On
定义中遗失了VirtualHost
,但它似乎对我的问题没有影响。