我已经设置了Laravel。我正在运行多个域。在昨天之前,我有一个顶级域和几个子域。昨天我添加了另一个TLD,一切开始变得很奇怪。具体来说,当尝试登录admin部分时,它将重定向到主页。我只有一名管理员,但服务器域已进入该站点。我的路线分组了:
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {
有时实际上是将我带入管理员,但是一旦单击链接,我就会注销并重定向到主页。我也一直在控制台中看到401错误。
是什么原因造成的?
编辑
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function() {
Route::get('/', 'AdminController@index');
Route::get('/pages', 'AdminController@pages');
Route::get('page/create', 'AdminController@createPagePage');
Route::post('createPage', 'AdminController@createPage');
Route::get('/page/edit/{page_id}', 'AdminController@editPagePage');
Route::post('editPage', 'AdminController@editPage');
});
$redirectTo = '/';
答案 0 :(得分:2)
如果您对正确的域设置有信心。请验证以下几件事。
1。。您的config/session.php
已正确设置为支持多个域。
'driver' => env('SESSION_DRIVER', 'file'), // check /storage folder writtable recursivelly.
'domain' => env('SESSION_DOMAIN', null), // verify if single domain is not given in .env or in settings.
'same_site' => null // it should not be strict if you have ajax request across these domain. I mean from javascript you may try to request to other domain.
etc...
2。。确认您的路线是否不在domain
之下。像这样:
Route::group(['domain' => 'xxx'], function($params)
{
// your routes..
});
3。。如果代码中添加了任何硬编码的域验证/条件或重定向。
4。。.env中的任何值都指向单个域。
5。也不要忘记清除缓存/编译视图/路线并删除临时文件一次。就像/app/bootstrap
和/storage
// Clear Application Cache
php artisan cache:clear
// Clear route cache
php artisan route:cache
// Clear config cache
php artisan config:cache
// Clear compiled view files
php artisan view:clear
6。。任何第三方软件包都可能包含域设置。确保验证/config
文件夹中的文件。
7。。检查url rewrite
中的.htaccess
设置
8。-确认服务器上是否有任何代理设置或安装了任何软件-很少见。
如果仍然有问题,请重新启动apache/nginx
服务,因为有时更改后配置可能不会生效,可能需要重新启动服务器。
希望它会有所帮助。
答案 1 :(得分:0)
您是否正确设置了SESSION_DOMAIN?
您可能会注意到的一件事是,当用户登录到一个商店并转到另一个商店时,会话不会保存。要解决此问题,我们需要在.env文件中添加SESSION_DOMAIN变量,例如:
SESSION_DOMAIN ='。example.com'
仅此而已,现在,用户会话将在我们应用程序中的所有商店/子域之间共享。
https://medium.com/@maxkostinevich/how-to-build-multi-domain-laravel-application-e6d87d5e507b
答案 2 :(得分:0)
如果您使用的是Linux,请尝试检查会话文件的权限并进行更改,以使应用程序可以在该文件上写入会话密钥;如果它不起作用,请尝试将会话驱动程序更改为数据库。
如何更改会话驱动程序?