>  기사  >  백엔드 개발  >  CodeIgniter_php 예제에서 팬 도메인 이름 확인 구현

CodeIgniter_php 예제에서 팬 도메인 이름 확인 구현

WBOY
WBOY원래의
2016-05-16 20:39:521118검색

최근 SEO를 용이하게 하기 위해 2차 도메인 이름을 사용해야 하는 프로젝트를 접했습니다. CodeIgniter 프레임워크가 사용되기 때문에 이 프레임워크는 유연한 라우팅 기능을 제공하지만 2차 도메인 이름을 구현할 수 없습니다. 많은 정보를 검색한 후 여러 테스트를 거쳐 해결책을 찾았습니다. 이 예에서는 가짜 도메인 이름 www.mysite.com을 사용합니다.

1단계:

먼저 httpd.conf에서 가상호스트를 생성하세요

<VirtualHost *:80>
  ServerAdmin admin@163.com
  DocumentRoot "D:/www/cms"
  ServerName www.mysite.com
  ServerAlias *.mysite.com #这里采用泛解析的方式
  ErrorLog "logs/mysite.com-error.log"
  CustomLog "logs/mysite.com.log" common
</VirtualHost>

2단계:

이 효과를 얻고 싶습니다:
http://www.mysite.com/category/news/1.html =====> http://category.mysite.com/news/1.html
이 도메인에 대한 정상적인 액세스를 보장하려면 호스트 파일을 수정

해야 합니다.
127.0.0.1 www.mysite.com
127.0.0.1 category.mysite.com

3단계:

수정: system/core/URI.php의 _set_uri_string 메소드

/**
 * Set the URI String
 *
 * @access public
 * @param string
 * @return string
 */
function _set_uri_string($str)
{
 // Filter out control characters
 $str = remove_invisible_characters($str, FALSE);
 // If the URI contains only a slash we'll kill it
 $this->uri_string = ($str == '/') &#63; '' : $str;
 // Add by fengyun for url rewrite at 2013-1-25 1:02:27
 @include(APPPATH.'config/domain'.EXT);
 $arrServerName = explode('.', $_SERVER['SERVER_NAME']);
 if (in_array($arrServerName[0], $domain)) {
 $this->uri_string = '/' . $arrServerName[0]."/" . $this->uri_string;
 }
}

이는 주로 CI가 URL을 올바르게 이해할 수 있도록 하기 위한 것입니다.

4단계: application/config/ 아래에 domain.php 파일을 만듭니다. 내용은 다음과 같습니다.

<&#63;php
if ( ! defined('BASEPATH'))
exit('No direct script access allowed');
$domain = array('category',"detail","info","archive");

기본적으로는 완료되었습니다. 하지만 site_url()을 사용할 때 2차 도메인 이름을 사용하려면 다른 작업을 수행해야 합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.