Đăng ký
Duyên Việt sẽ giúp bạn giao lưu, kết bạn, se duyên và chia sẻ các thông tin trong cuộc sống

0 đánh giá

phpFox tạo sẵn chế độ url_rewrite = '3' để cho subdomain. Tuy nhiên chế độ này còn nhiều nhược điểm là phải tạo quá nhiều subdomain không cần thiết, và còn một lỗi là subdomain cho mobile không chạy hoàn hảo. Có nhiều trang đã đưa ra cách tạo riêng một subdomain cho mobile, nhưng hầu như đều bị lỗi. Sau mấy hôm mò mẫm, gần như đã làm chủ được thằng subdomain cho mobile.


Trước hết, bạn phải backup toàn bộ dữ liệu, và code nguồn. Cho chắc ăn, và tôi không đảm bảo về những lỗi phát sinh nhé Smile


1. Tạo 2 subdomain là cho fullsite và cho mobile: ví dụ www.duyen.vn và m.duyen.vn và trỏ vào cùng 1 thư mục, hay đơn giản là chung 1 alias.


2. Mở file 'include/library/phpfox/url/url.class.php'



Tìm đoạn code:


publicfunction isMobile()
        {
                if(isset($_REQUEST['js_mobile_version']))
                {
                        returntrue;
                }
                returnself::$_isMobile;
        }


Thay thế bằng đoạn:


public function isMobile()
        {      
                $pageURL =(isset($_SERVER['HTTPS'])?'https://':'http://'). $_SERVER["SERVER_NAME"]. $_SERVER["REQUEST_URI"];
                $parsedUrl = parse_url($pageURL);
                $host = explode('.', $parsedUrl['host']);
                $subdomain = $host[0];
                if(isset($_REQUEST['js_mobile_version'])|| $subdomain =='m')//check if user is using the subdomain
                {
                        return true;
                }
                returnself::$_isMobile;
        }


Tìm đoạn:


if($sUrl =='phpfox_full_site')
                {
                        $sUrl ='';
                }
                else
                {
                        if($this->isMobile())
                        {
                                $sUrl ='mobile.'. $sUrl;
                        }                                      
                }


Thay thế bằng


if($sUrl =='phpfox_full_site') { $sUrl = ''; $sUrls = ''; $sUrls .= Phpfox::getParam('core.path'); $sUrls .= $this->_makeUrl($aParts, $aParams); $sUrls = str_replace('m.', 'www.', $sUrls); return $sUrls; }

3. Mở file 'include/library/phpfox/session/session.class.php' 


Tìm đoạn


public function __construct()

{

if (!$this->_oObject)

{

$sStorage = 'phpfox.session.storage.session';

 

/**

* Using Cookie handler here because of problems with session_set_save_handler()

* when using option 3 (sub-domains)


* @link

* @todo Find a work around for this problem

*/

if (Phpfox::getParam('core.url_rewrite') == 3)

{

$sStorage = 'phpfox.session.storage.cookie';

}

 

$this->_oObject = Phpfox::getLib($sStorage);

}

return $this->_oObject;

}

Thay thế bằng đoạn



public function __construct()

{

if (!$this->_oObject)

{

//$sStorage = 'phpfox.session.storage.session';

 

/**

 * Using Cookie handler here because of problems with session_set_save_handler()

 * when using option 3 (sub-domains)

 * 

 * @link

 * @todo Find a work around for this problem

 */

//if (Phpfox::getParam('core.url_rewrite') == 3)

{

$sStorage = 'phpfox.session.storage.cookie';

}

 

$this->_oObject = Phpfox::getLib($sStorage);

}

return $this->_oObject;

}

 


4.Mở file 'include/library/phpfox/request/request.php'

Tìm đoạn

Phpfox::getLib('url')->send('mobile');

Thay bằng

Phpfox::getLib('url')->send(str_replace('www.', 'm.', Phpfox::getLib('url')->getFullUrl()));

5. Mở file 'include/library/setting/server.sett.php'

Tìm đoạn

$_CONF['core.host'] = 'domain';

Thay bằng

$_CONF['core.host'] = 'HOST_NAME';











Từ khóa: subdomain, mobile, phpfox