Laravel Redirect :: route()在vhost上转到错误的url

Mik*_*unk 2 php vhosts laravel laravel-4

我今天正在编写一些代码并发送了一个代码Redirect::route().它没有像往常一样重定向到base_url/route,而是像这样重复了base_url:

http://myurl.dev/http://myurl.dev/myroute

我想我做错了,所以我回去试图找出问题.我最终用一个新的vhost启动了一个新项目,并在app/routes.php中放了一小段代码:

Route::get(
    'test1',
    [
        'as' => 'test1',
        function () {
            return Redirect::route('test2');
        }
    ]
);

Route::get(
    'test2',
    [
        'as' => 'test2',
        function () {
            return 'test2hello';
        }
    ]
);
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中打开http://myurl.dev/test1时,而不是只显示"test2hello",它抛出了http找不到错误,因为http://myurl.dev/http://myurl.dev/test2不是找到.这只会发生Redirect::route(),它按预期工作Redirect::to().它也只发生在虚拟主机上; Redirect::route()如果我去localhost/myurl/public/test1,按预期工作.有任何想法吗?


更新:

我被问到我的vhost设置.我在Mac OSX 10.8.5上使用内置Apache.我已经取消注释了/etc/apache2/httpd.conf中httpd-vhosts.conf include行.我在/etc/apache2/extra/httpd-vhosts.conf中添加了几个vhost ,这里有一个:

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/example_blog/public"
    ServerName example_blog.local
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

/ etc/hosts中的相应行:

127.0.0.1   example_blog.local
Run Code Online (Sandbox Code Playgroud)

并重新启动Apache.该文件夹已命名example_blog.local.

mar*_*ite 5

问题似乎与URL中有一个下划线有关,它不会传递FILTER_VALID_URL:

https://github.com/laravel/framework/issues/2511

(由于我正在整理这个以帮助其他人寻找解决方案,因此我没有得到答案)