DANFA

Не перенаправляет на страницу 404 на Android устройстве

Сегодня заметил, что перейдя по прямой ссылке на фотографию, которой не существует, на Android устройстве, страница error.404, что заданна движком, не будет загружена...

Пример:
https://danfa.net/file/pic/photo/2024/04/15/06b5e25300005ba0567d4e167_500.jpg

На ПК открывается страница движка 404 ошибке, на мобильных устройствах нет...

Удалось выяснить, что ноги растут из данного метода:
    public function isMobile($redirect = true)
    {
    	static $firstCheck = false;

		$url = phpfox::getLib('url');

    	if ($firstCheck === false && !$url->isMobile() && !phpfox::getLib('session')->get('mobilestatus'))
    	{
    		$firstCheck = true;
    		$this->getBrowser();

    		if ($this->mobile === true && !PHPFOX_IS_AJAX)
    		{
    			if ($this->get('req1') == 'user' && $this->get('req2') == 'verify' && $this->get('link'))
    			{
    				$url->send('mobile.user.verify', ['link' => $this->get('link')]);
    			}

    			$sendWhere = 'mobile';
    			if (phpfox::getParam('core.redirect_guest_on_same_page'))
    			{
					$sendWhere = $url->getFullUrl(true);
					$sendWhere = 'mobile' . str_replace('/', '.', $sendWhere);
				}

    			if ($redirect && !empty($sendWhere))
    			{
					$url->send($sendWhere);
				}
				else
				{
					return true;
				}
    		}
    	}

    	return $url->isMobile();
    }

Строка $url->send($sendWhere); виной всему... Думаю, как поправить.
Чуток исправил метод, убрал то, что мне не надо:
    public function isMobile($redirect = true)
    {
    	static $check = false;

		$url = phpfox::getLib('url');

    	if ($check === false && !$url->isMobile() && !phpfox::getLib('session')->get('mobile'))
    	{
    		$check = true;
    		$this->getBrowser();

    		if ($this->mobile === true && !PHPFOX_IS_AJAX)
    		{
    			if ($this->get('req1') == 'user' && $this->get('req2') == 'verify' && $this->get('link'))
    			{
    				$url->send('mobile.user.verify', ['link' => $this->get('link')]);
    			}

    			if ($redirect)
    			{
					$sendWhere = $url->getFullUrl(true);
					$sendWhere = 'mobile' . str_replace('/', '.', $sendWhere);

					$url->send($sendWhere);
				}
				else
				{
					return true;
				}
    		}
    	}

    	return $url->isMobile();
    }

В конфигурацию Nginx добавил (В: http):
	map $http_user_agent $page_error {
		"~*(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino" "/mobile/error/404/";
		default "/error/404/";
	}

И исправил error_page (В: server):
	error_page 404 $page_error;

Перечитал конфиг Nginx (Команда: nginx -s reload). Теперь страницы 404 ошибки открываются, как я задумал, страницы движка, на ПК - полная версия, на мобильных устройствах - мобильная версия.