나는하지 예를 들어 내 사이트에서 링크 만 외부 링크를 리디렉션 할 하지만 작동하지 않습니다.리디렉션에만 외부 링크
if ($url == $host);
외부 링크 만 리디렉션 할 수있는 사람이 있습니까?
나는하지 예를 들어 내 사이트에서 링크 만 외부 링크를 리디렉션 할 하지만 작동하지 않습니다.리디렉션에만 외부 링크
if ($url == $host);
외부 링크 만 리디렉션 할 수있는 사람이 있습니까?
당신은이 작업을 수행하는 정규 표현식을 사용할 수 있지만,이 URL의 구성 부품을 반환하고 당신이 필요로하는 어떤 목적을 참조 할 수 있도록 설계되었습니다 parse_url()
를 사용하는 것이 더 쉽습니다 [테스트] :
<?php
// identify host from GET URL and compare
if (parse_url($_GET['url'], PHP_URL_HOST) !== 'mysite.com') {
// Redirect after 3 seconds
header("Refresh: 3; url=".$_GET['url']);
}
?>
당신 또한, URL 구성 요소 [체계, 호스트, 포트, 사용자, 패스, 경로, 쿼리, 조각]의 전체 배열을 당겨 사용할 수 있도록 가능한 모든 제작 수 :
<?php
// Your URL from whatever source
$url = $_GET['url'];
// Parse it and create an array of URL components
$purl = parse_url($url);
// identify host component and compare
if ($purl['host'] !== 'mysite.com') {
// Redirect after 3 seconds
header("Refresh: 3; url=$url");
}
?>
well just say;) – hakre
@nickhar 답장을 보내 주셔서 감사합니다. 먼저 google.com 리디렉션을 원하지 않습니다. 내 링크 (mywebsite)를 제외한 모든 외부 링크를 의미합니다. 구글이 좋은 예다. 그래서 나는 $ _GET [ 'url']; 대신 http://google.com. 그렇지? 그러나 그것은 작동하지 않고 여전히 모든 링크를 리디렉션합니다. 심지어 내 자신의 링크까지도 리디렉션합니다. 나는 어떻게해야합니까? 감사합니다. –
@pedramalipour 이러한 외부 링크 중 하나가 나오거나 어디에서 왔는지 보여 줄 수 있습니까? 브라우저에서 어디에서 볼 수 있습니까? – nickhar
http://php.net/ parse_url – str