Php Laravel-子域路由前缀导致其他路由不返回;“未找到”;

Php Laravel-子域路由前缀导致其他路由不返回;“未找到”;,php,laravel,routing,Php,Laravel,Routing,[注意]-发现此问题是由于Apache配置不正确造成的。我已经发布了一个答案,解释了我做错了什么。我希望这有帮助 我正在和拉威尔一起开始一个项目,我已经开始创建一般路线。我想创建一个请求结构,以便example.com的URL转到有机路由,admin.example.com转到我的应用程序的管理仪表板,{workspace}.example.com转到我用户个人工作区的动态路由 目前我有以下路由结构: Route::group(array('domain' => 'admin.examp

[注意]-发现此问题是由于Apache配置不正确造成的。我已经发布了一个答案,解释了我做错了什么。我希望这有帮助


我正在和拉威尔一起开始一个项目,我已经开始创建一般路线。我想创建一个请求结构,以便
example.com
的URL转到有机路由,
admin.example.com
转到我的应用程序的管理仪表板,
{workspace}.example.com
转到我用户个人工作区的动态路由

目前我有以下路由结构:

Route::group(array('domain' => 'admin.example.com'), function() {

    Route::get('/', function() {
        echo 'This route works fine';
    });

    Route::get('/test', function() {
        // This route doesn't work...
        echo 'Test';
    });

});


Route::group(array('domain' => '{workspace}.example.com'), function() {

    Route::get('/', function() {
        echo 'This route works fine';
    });

    Route::get('/test', function() {
        // This route doesn't work...
        echo 'Test';
    });

});


Route::group(array('domain' => 'example.com'), function() {

    Route::get('/', function() {
        echo 'This route works fine';
    });

    Route::get('/test', function() {
        // This route doesn't work...
        echo 'Test';
    });

});
如您所见,我有三个路由组。第一个是管理员前缀URL(以确保不会将
admin.example.com
误认为是工作区前缀)。首先是工作区前缀,最后是无前缀路由组

如代码所示,所有
Route::get(“/”,…
路由都可以正常工作,但是任何不是根目录的路由都不能正常工作。我在尝试转到
example.com/test
(以及所有其他域前缀)时收到404个错误

我可以对我的路由做些什么来修复此问题并使路由
Route::get('/test',…
工作,而不仅仅是
/
路由


非常感谢!

此问题是由Apache配置不正确而不是路由不正确引起的

为避免将来出现类似问题,请确保在项目的
中将
AllowOverride
设置为
All
,如下所示阻止apache.conf文件:

<Directory /var/www/myProject/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

选项索引跟随符号链接
允许超越所有
要求所有授权

如果您去掉所有路由组,只使用简单的、无组的
route::get('/')
route::get('/test'))
/test
路由有效吗?我有一种隐秘的怀疑,这与组/子域无关,与您的Web服务器有关。
.htaccess
配置。@ceejayoz-谢谢您的回复!我刚刚测试了这个,结果它不起作用!我以前使用过基本路由,但它只在很明显,某些配置已被更改,这是导致问题的原因。有什么办法可以做到这一点吗?Thanks@ceejayoz-我只是太傻了!我将DocumentRoot更改为Laravel项目,而不是在apache配置中将
AllowOverride
设置为
All
。谢谢你指出这一点!这样就可以了!很高兴我能帮到你你可以找到原因。:-)