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