【发布时间】:2013-10-23 19:15:18
【问题描述】:
我今天正在编写一些代码并发送了Redirect::route()。它没有像往常一样重定向到 base_url/route,而是像这样复制了 base_url:
http://myurl.dev/http://myurl.dev/myroute
我认为我做错了什么,所以我回去尝试找出问题所在。我最终用一个新的虚拟主机开始了一个新项目,并将这一点代码放在 app/routes.php 中:
Route::get(
'test1',
[
'as' => 'test1',
function () {
return Redirect::route('test2');
}
]
);
Route::get(
'test2',
[
'as' => 'test2',
function () {
return 'test2hello';
}
]
);
当我在浏览器中打开http://myurl.dev/test1 时,它不仅显示“test2hello”,还抛出了http not found 错误,因为找不到http://myurl.dev/http://myurl.dev/test2。这只发生在Redirect::route() 上,它在Redirect::to() 上按预期工作。它也只发生在虚拟主机上;如果我转到 localhost/myurl/public/test1,Redirect::route() 按预期工作。有什么想法吗?
更新:
有人询问我的虚拟主机设置。我在 Mac OSX 10.8.5 上并且正在使用内置的 Apache。我已取消注释 /etc/apache2/httpd.conf 中的 httpd-vhosts.conf 包含行。我在 /etc/apache2/extra/httpd-vhosts.conf 中添加了一些虚拟主机,这是一个:
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents/example_blog/public"
ServerName example_blog.local
</VirtualHost>
以及/etc/hosts中的对应行:
127.0.0.1 example_blog.local
并重新启动 Apache。该文件夹名为example_blog.local。
【问题讨论】:
-
您是如何设置虚拟主机的?可以发一下配置吗?我在我的 laravel 安装中测试了你的路线,我没有遇到任何问题。我认为这是关于重写模式的问题,或者您的项目中未正确设置 vhost。
-
@Darwing 我已经添加了我的虚拟主机设置
-
我现在不知道指令/标签
Directory是否真的很重要,但是您在虚拟主机配置中缺少它。在this tutorial 中,您可以看到如何使用 Laravel 正确设置 vhost 配置的说明。
标签: php laravel laravel-4 vhosts