> 백엔드 개발 > PHP 튜토리얼 > 도메인 이름 오류 정정 시스템 가상 도메인 이름 시스템을 개발하는 방법

도메인 이름 오류 정정 시스템 가상 도메인 이름 시스템을 개발하는 방법

WBOY
풀어 주다: 2016-07-29 08:34:29
원래의
1175명이 탐색했습니다.

yourname.yeah.net과 같은 축약된 도메인 이름을 사용할 때 모든 사람이 매우 편리하다고 생각합니다. 내 서버에서 축약된 도메인 이름을 구현할 수만 있다면 어떨까라고 생각합니다. 실제로는 복잡하지 않습니다. 이 기사를 읽은 후에는 축약된 도메인 이름 시스템을 만들 수도 있습니다.
축약 도메인 이름 시스템의 핵심 기술은 웹 페이지의 리디렉션(Redirectory)을 구현하는 것입니다. 본질적으로 약식 도메인 이름 시스템과 가상 머신 시스템은 완전히 다릅니다. 가상 도메인 이름과 가상 머신의 IP 사이에는 일대일 대응이 있습니다. 축약된 도메인 이름 시스템에서는 도메인 이름과 IP의 일대일 매핑이 필요하지 않습니다. 즉, 완료하는 데 복잡한 도메인 이름 확인 메커니즘과 가상 머신이 전혀 필요하지 않습니다. yourname.somedomain을 요청할 때 원래 Html 페이지를 저장한 위치로 브라우저를 리디렉션합니다.
더 완벽하게 설명하기 위해 다음 범례는 다음과 같습니다.
제가 제공하는 소스 프로그램은 실행 환경입니다. Apache1.3.6 RedHat 5.1 Linux에서 웹 서버 PHP3 언어입니다. 프로그램을 작성하기 전에 먼저 서버를 설정해야 합니다. 먼저, Apache 서버가 php3를 지원하도록 하십시오. ftp.redhat.com으로 이동하여 mod_php-2.0.1-9.i386.rpm을 다운로드하세요. 설치 후 /etc/httpd/conf/http.conf 파일을 수정하고 #LoadModule php3_module 문장 앞의 # 주석을 제거하세요. , /etc에서도 /httpd/conf/srm.conf 파일의 #AddType application/x-httpd-php3 .php3 앞의 주석 번호를 제거하고 DirectoryIndex 항목 뒤에 index.php3을 추가합니다. Apache 서버를 다시 시작하세요. 현재 서버는 표준 php3 언어 스크립트 파일을 지원하며 index.php3을 기본 홈페이지로 사용할 수 있습니다.
팬 도메인 이름을 확인할 수 있도록 DNS 서버를 설정합니다. 일반적인 Unix 및 Linux 시스템의 DNS 확인은 Bind 데몬에 의해 완료됩니다. Bind4 및 Bind8의 구성 파일은 각각 /etc/named.boot 및 name.conf입니다. 구성 중에 시스템에 따라 수정합니다. 바인딩 구성 파일 /etc/named.boot를 설정하고 여기에 "primary domain.com db.domain" 문장을 추가한 후 새 도메인 레코드를 추가합니다. /etc/name.conf에 추가:
zone "domain.com" {
type master
file "db.domain"
/var/name/ 생성 새로운 기본 도메인 레코드 파일 db.domain 형식: >604800 ;expire
86400) ;최소
dns
MX 10 dns.domain.com
dns A 202.115.135.50
www
 * A 202.115.135.50
핵심은 마지막 문장입니다. 즉, 전체 도메인에서 표시되지 않은 모든 호스트 이름은 동일한 IP를 가리킬 수 있습니다. /usr/sbin/ndc reload를 실행하여 도메인 이름 데이터베이스를 다시 로드합니다. 테스트해 보세요. 이때 도메인의 모든 호스트(표시된 호스트 제외)를 핑하고 모두 지정된 IP를 가리켜야 합니다. 그러면 DNS 서버 설정이 완료됩니다.
마지막 단계는 PHP3 스크립트를 컴파일하는 것입니다. 방금 전체 원리를 그림으로 자세히 설명하였으므로 리다이렉션 프로그램을 작성하는 것은 어렵지 않습니다.
IE5.0에서 보낸 전체 HTTP 헤더를 살펴보겠습니다.
수락: application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, image/gif, image/ x-xbitmap , image/jpeg, image/pjpeg, */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-cn
연결: Keep-Alive
호스트: ww.
User-Agent: Mozilla/4.0(호환; MSIE 5.0b1; Windows 98)
전체 HTTP 헤더에서 Host 정보를 빼고 http://www.jj.jx를 변경해야 합니다. cn/www.xxx.xxx/default.htm 형식의 첫 번째 부분 "www", 즉 HostName(즉, 사용자가 등록한 이름)을 별도로 빼내어 리디렉션 검색을 위한 키워드로 사용합니다.
사용자가 등록한 URL 정보를 검색한 후 사용자의 브라우저에 "Localtion: http://www.jj.jx.cn/somewhere/sample.html"이라는 리디렉션 명령을 보내 사용자를 지정된 URL로 리디렉션합니다. 페이지.
PHP3에는 브라우저가 보낸 HTTP 헤더 정보를 가져오는 GetAllHeader() 함수가 있습니다. 우리는 전체 프로그램을 완료하기 위해 주로 이 기능을 사용해야 합니다.
소스 프로그램은 마지막에 첨부합니다. 사실상 실험적이므로 사용자 정보 조회 시에는 데이터베이스를 사용하지 않으며, 전체 시스템을 실용화하려면 반드시 데이터베이스에 연결해야 합니다. 그렇지 않으면 사용자 정보를 쿼리하는 프로세스가 매우 길어지고 효율성에 큰 영향을 미치며 사용자 데이터 관리가 불편해집니다. (공간의 제약으로 등록 및 관리에 필요한 글쓰기 기록 프로그램이 제공되지 않으니 직접 추가해 주세요.)
소스 프로그램에서는 모든 사용자 정보가 data 하위 디렉터리의 user.dat 파일에 기록됩니다.其格式为:  
  사용자 이름:  
  http://octopus.cdit.edu.cn/~qap213/index.html  
  附PHP3源程序:  
    //HTTP 헤더를 가져와서 구문 분석합니다//  
  $headers = getallheaders();  
  while (list($header, $value) = 각각($headers)) {  
  if($header=="Host"){$username= strtok($value,".");}}
  //배너 창 밖으로 나가기//  
  echo '';  
   
  // 사용자 찾기 녹음된 파일의 정보//  
  if(!$usrinfo=file("data/user.dat")){echo "데이터 파일 열기 오류!!";}  
  $url="http:// ";  
  for($i=0;$i  if(strtok($usrinfo[$i],":")==$username){  
  $url=$usrinfo[$i 1];  
  }  
  if($url=="http://"){echo "데이터의 사용자 이름을 찾을 수 없습니다!";}  
  else{
  echo '
  ?>  

以上就介绍了域name纠错系统 如何开发一个虚拟域name系统, 包括了域name纠错系统方 的内容,希望对PHP教程兴趣的朋友有所帮助。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿