2010-05-27 3 views
3

http://www.example.com/http://www.test.com이러한 URL을 처리 할 수 ​​있습니까?

행운을 남김없이 .htaccess를 사용하여 여러 가지 방법을 시도했습니다. 두 번째 URL을 매개 변수로 지정해야합니다. index.php로 리디렉션하여 $_SERVER["REQUEST_URI"] 또는 다른 방법으로 가져올 수 있습니까? 감사합니다

UPD : 전체 URL을 가져올 수없는 것처럼 보입니다. 물음표는 인식되지 않습니다. 이상적인 예 :

127.0.0.1/http://www.test.com/script.php?a=hello&b=world#blabla;par2?%par3 

그리고 난 내 index.php를 정확한 문자열에서 얻을 필요가

www.test.com/script.php?a=hello&b=world#blabla;par2?%par3 
+0

URL이 http://www.mysite.com/index.php?url=http://www.test.com이면 허용됩니까? 그렇다면 PHP에서 URL 매개 변수를 구문 분석하는 것이 쉬운 일입니다. –

+1

주소 표시 줄에 http://www.mysite.com/http://www.test.com을 입력하면 403 오류가 발생합니다. –

+0

나는 mod_rewrite에 대해 콜론/세미콜론을 피하는 방법을 알고 싶어한다고 생각합니다. –

답변

2

확실히 가능 : 이미 http://downforeveryoneorjustme.com/http://www.google.com/

가있었습니다 방법에 관해서는 covered on ServerFault

+0

옵션 2 시도하지만 마지막 줄을 변경하십시오 ~ 'RewriteRule ^/(. *) /index.php? url = $ 1' index.php가 아닌 모든 것은 get 인수 'url'로 지정된 URL을 전달하여 index.php로 리디렉션됩니다. –

+0

첫 번째 해결 방법 (ServerFault에서)이 완벽하게 작동하지 않습니다. $ 1에서 "?" 상징. 즉, .htaccess가 인 경우를 의미합니다. 영구적 인 ^/(?

0

URI는 얻을 수 있지만 조각이 없으면 서버로 전송되지 않습니다. 이 규칙을보십시오 :

RewriteRule ^http:/ index.php [L] 

하는 그런 요청 된 URI 경로 플러스 쿼리 (그래서 첫 번째 # 또는 URI의 끝 부분까지 세 번째 /의 부분) $_SERVER['REQUEST_URI']에서 확인할 수있다.

+0

어쨌든 나는 403 (액세스 금지)지고 있어요 오류는 URL에 콜론 (:)이 있기 때문입니다. 나는 127.0.0.1/http://www.test.com을 시도한다. –

+0

@Vitaly : 그리고 서버의 오류와 액세스 로그는 무엇을 말하는가? – Gumbo

+0

error_log에 "[2010 년 5 월 27 일 22시 1 분 1 초 2010] [오류 : [클라이언트 :: 1] (20024) 주어진 경로에 형식이 잘못되었거나 잘못된 문자가 포함되어 있습니다. GET/http : // hjh HTTP/1.1을 파일 " access_log에"127.0.0.1 - - [27/May/2010 : 21 : 03 : 17 +0300] "GET/http : // hjh HTTP/1.1"403 1175 "-" "Mozilla/5.0 (Windows; @Vitaly : 이것은 Windows 시스템에서 알려진 문제인 것으로 보입니다 (https : // issues 참조). AppleWebKit/533.4 (Gecko와 같은 KHTML) Chrome/5.0.375.55 Safari/533.4 " –

3

문제점 :

아파치윈도우에서 실행에 문제가 있습니다. Windows의 Apache에서는 요청 URI에 콜론 (:)을 사용할 수 없습니다. 이것은 기본적으로 http://www.mysite.com/C:/SomeFile.exe과 같은 URL을 피하기위한 것이지만 실제로 성가시다.

mod_rewrite과 동시에 사용하면 건너 뜁니다.

귀하와 일부 응용 프로그램 (예 : 위키 백과)은 URL에 콜론 :을 사용합니다. Windows 용 Apache에서 무엇을해야합니까?

는 해결책 :

당신이 뭔가에 URL을 변경할 수 있습니다 :

이 버그가 계속이 답변을 작성하는 시점에서

과 절대 해결책이 없다가, 하지만는 트릭이있다 다음과 같이이 예에서 http://www.mysite.com/url/http://www.test.com

http://www.mysite.com/ 당신의 스크립트 경로 및입니다은 요청 URI입니다. 콜론 (:) 전에 슬래시 (/)가있는 경우

문제

는 사라질 것입니다.

관련 문제