php - Laravel 根路由“/”在子域的前缀路由中不起作用
问题描述
我有以下路线的项目:
Route::namespace('Admin')->prefix('admin')->group(function () {
Route::group(['middleware' => 'auth:admin'], function () {
// this is working on my local machine but it's skipped on server which is a subdomain.
Route::get('/', 'DashboardController@index')->name('admin.dashboard');
// other routes here. all of them working fine
Route::resource('pages', 'PageController')->except(['show']);
});
});
Route::get('/', 'HomeController@index'); // this is working fine
在我的本地机器上,当我打开 app.test/admin 时,一切都按预期工作。如果我没有登录,我可以看到我的登录页面,如果我登录,我可以看到仪表板视图。在服务器上,这是一个子域,如果我打开 subdomain.app.com/admin 我什么也看不到。服务器响应为 200,没有任何错误。像 admin/pages 这样的所有后续路由都可以正常工作。
apache 中的文档根目录设置为项目的根目录,而不是公共文件夹内。我在根目录中使用以下 .htaccess 文件。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
</IfModule>
我希望 /admin 路由显示仪表板视图,但我得到一个空白页面。如果没有错误,问题可能出在哪里?
解决方案
像这样构建您的路线列表是否有帮助?
Route::group(
[
'domain' => '{account}.app.test',
'prefix' => 'admin', // This is the URL prefix
'as' => 'admin.', // This gets pre-pended to the route names.
'middleware' => 'auth:admin',
'namespace' => 'Admin'
],
function () {
Route::get('/', 'DashboardController@index')->name('dashboard'); // with 'as' property, this becomes 'admin.dashboard'
Route::resource('pages', 'PageController')->except(['show']);
}
);
推荐阅读
- android - Android Studio 是否提供了一种转义字符串的方法?
- c++ - 试图以崇高的方式运行。发生错误:collect2.exe:错误:ld 返回 1 退出状态
- node.js - 护照猫鼬本地的身份验证错误
- reactjs - 如何在 reactJS 中重新加载特定标签
- json - 为什么 Unmarshal 使用嵌套结构会失败?
- clang - Clang AST Libtooling:如何在 AST 匹配上打印数组标识符
- high-availability - HA 配置问题,ActiveMQ Artemis
- javascript - 如何在 javascript 中获取此值?
- sql - T-SQL 获取数据库中每一行的第 5 个单词
- entity-framework - 包括返回所有记录的导航属性,而不仅仅是添加的属性