php yii google-webmaster-tools

php - Obtención de un error 404 suave en la redirección a la página de inicio de sesión en Yii



google-webmaster-tools (3)

De manera simple, solo necesita identificarlo en el controlador. Si no es un inicio de sesión de usuario, se lo llevará automáticamente a la página de inicio de sesión. Como el siguiente ejemplo:

public function actionView($id) { if(!Yii::app()->user->isGuest) { $this->redirect(array(''/site/login'')); } else { $this->render(''view'',array( ''model''=>$this->loadModel($id), )); } }

Esperemos poder ayudar

Estoy usando Yii 1.1.17, y noté en algunas de mis páginas donde quiero que los usuarios registrados puedan ver. Aparece un error 404 suave en las herramientas de los webmasters de Google.

Por ejemplo

http://www.example.com/sell/ cuando vaya a http://www.example.com/sell/view , lo redireccionará a http://www.example.com/login

En este momento solo tengo 240 errores 404 blandos. La acción de visualización no se configuró para usuarios registrados solo al principio. Pero después de un par de meses después de lanzar mi sitio. Lo cambie. Entonces los errores comienzan a aparecer.

¿Hay una manera de solucionar esto? o un trabajo alrededor?

Aquí está accessRules para la acción de view que es solo para usuarios registrados:

public function accessRules() { return array( array(''allow'', ''actions''=>array(''index'', ''new''), ''users''=>array(''*''), ), array(''allow'', ''actions''=>array(''view''), ''users''=>array(''@''), ), array(''allow'', ''actions''=>array(''admin'',''delete'', ''update'', ''create'',''update'',''upload''), ''expression''=>''app()->user->isAdmin()'', ), array(''deny'', ''users''=>array(''*''), ), ); }


Usted podría agregar un deniedCallback como

public function accessRules() { return array( array(''allow'', ''actions''=>array(''index'', ''new''), ''users''=>array(''*''), ''deniedCallback'' => array($this, ''redirectToLogin''), ), array(''allow'', ''actions''=>array(''view''), ''users''=>array(''@''), ''deniedCallback'' => array($this, ''redirectToLogin''), ), array(''allow'', ''actions''=>array(''admin'',''delete'', ''update'', ''create'',''update'',''upload''), ''expression''=>''app()->user->isAdmin()'', ''deniedCallback'' => array($this, ''redirectToLogin''), ), array(''deny'', ''users''=>array(''*''), ''deniedCallback'' => array($this, ''redirectToLogin''), ), ); } public function redirectToLogin($user = null, $rule = null){ Yii::app()->controller->redirect(''/login'', true, 403); }

A continuación, puede redirigir con cualquier código de estado que desee.

Puede encontrar más información sobre deniedCallback here .

Obtenga más información sobre la redirect here


acaba de incrustar la biblioteca dbmanager / rbac en sus aplicaciones yii,

http://www.yiiframework.com/doc-2.0/yii-rbac-dbmanager.html