2013-07-12 2 views
0

브라우저의 주소 표시 줄에 정확하게 표시되는 방법을 페이지 주소로 가져 오는 방법을 찾고 있습니다.PHP는 브라우저 주소창에 주소를 얻습니다.

내 사이트는 기본적으로 PHP 스크립트이며, 사용자가 http://mysite.com 또는 http://www.mysite.com을 사용하는지 아니면 mysite.com 또는 www.mysite.com 만 사용하여 사이트에 액세스 하는지를 확인하는 것이 내 목표입니다. 이 정보를 사용하여 링크를 리디렉션하여 단일 형식이되도록 노력하겠습니다. 이것은 내가 사용하는 일부 타사 도구에 필요합니다.

그래서 내가 무엇을 요구하는지는 PHP가 정확히 어떻게 브라우저가 그것을 요구하고 있는지, 사이트의 URL을 얻는 것이 가능하다.

답변

3

당신은 그러나 브라우저가 항상 자동으로 URL에 http://을 추가합니다, $_SERVER['HTTP_HOST']보고 www.mysite.commysite.com의 차이를 알 수 있습니다 (일부 브라우저는 사용자로부터 불필요한 정보를 숨길) 그래서 무엇을 알 수있는 방법이 없습니다 그들이 실제로에 입력 한 HTTP 요청의

+0

고맙습니다. 그것은 충분히 증명할 수 있습니다. 귀하의 답변을 답으로 표시하겠습니다. –

0

사용자가 http : //를 입력했는지 또는 PHP에서 직접 남겨 두지 않은지 여부는 확인할 수 없습니다. PHP는 최종 도메인 이름 ($_SERVER['HTTP_HOST']) 만 알 수 있습니다. 다른 기능은 브라우저에서 처리됩니다.

+0

크게 잘못되었습니다. –

+0

나는 완전히 잘못 되었습니까? 사용자가 검색 주소창에 http : //를 입력했는지 여부 만 알면 PHP 만 사용하여 사이트로 이동할 수있는 예제를 제공하십시오. –

+0

죄송합니다. 예. 그냥 질문을 다시 읽으십시오. 질문을 편집하면 downvote가 제거됩니다. –

2

처음 두 줄을 같이 :.

GET /index.php 
Host: www.mysite.com 

첫 번째 줄은 로컬 리소스 (웹 디렉토리에있는 보통 파일)을 지정하고, 두 번째는이 스트 이름을 지정합니다 유 ser를 입력하여 사이트를 찾습니다 (여러 가상 웹 호스트를 실행하는 서버에 특히 유용함). PHP는이 두 추출 할 수 있습니다 :

$_SERVER['HTTP_HOST'] 
$_SERVER['PHP_SELF'] 

기술적으로, $_SERVER['PHP_SELF']이 웹 호스트의 루트 디렉토리에 현재 PHP 스크립트의 상대 파일 경로를 지정을하지만, 실제로 리소스와 동일해야합니다 HTTP 요청의 첫 번째 행에 나열됩니다.

다른 응답에서 언급했듯이 사용자가 http://을 입력했는지 여부를 알 수있는 방법이 없습니다.

관련 문제