Обнаруживать и изменять внешние ссылки в PHP? - PullRequest
2 голосов
/ 05 июля 2011

У меня есть бесплатный веб-сервер PHP, и я хотел бы предоставить перенаправление на страницу внешних ссылок, как это делает deviantart.com . Есть ли способ сделать это только с помощью PHP? У меня нет доступа к серверу.

Редактировать : Я имел в виду страницу с вопросом: «Вы действительно хотите покинуть [ВЕБ-САЙТ МА]]? НОПЕ; 1010 *

Edit2 : На самом деле я имел в виду функцию для отлова внешних ссылок и замены их на /redirect/?url=PARSED_URL_ADDRESS

Ответы [ 4 ]

1 голос
/ 05 июля 2011

Вам нужно определить, есть ли какая-либо ссылка, которая перенаправляет на внешний веб-сайт, тогда вам нужна страница, на которой будет отображаться что-то вроде «Сейчас покидаю yourwebsite.com»

Если это так, то вам нужно проанализировать содержимое вашей страницы перед рендерингом и выяснить, есть ли какие-либо теги, и заменить их ссылками на некоторые gatway.php?url=outgoing-url

Где в gateway.php сравнить, если URL принадлежит вашему веб-сайту или внешнему веб-сайту, используя методы сравнения строк

Используйте этот код js в нижнем колонтитуле (я ожидаю, что есть некоторая распространенная страница нижнего колонтитула)

var urls = document.getElementsByTagName("a");
for (urlIndex in urls ) {
   urls[urlIndex].href = "dummy.php?url="+urls[urlIndex].href; //replace dummy.php with urs
}
1 голос
/ 05 июля 2011

Вы имеете в виду, как header('Location: <a href="http://www.example.com/" rel="nofollow">http://www.example.com/</a>');?

0 голосов
/ 05 июля 2011

Лучший способ сделать это - использовать заголовок местоположения, но вам также нужно установить код ответа 301, это также говорит поисковым системам, просматривающим ссылку, что контент по этому URL находится в другом месте, и это Рекомендуется устанавливать код ответа для перенаправлений в целом.

Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.new-url.com" ); 
0 голосов
/ 05 июля 2011

Предоставьте, например, функцию, которая создает теги <a>.Или только один, который преобразует URL в ваш редиректор: redirect.php?url=http://....Затем перенаправитель выдает HTTP-заголовок с именем «refresh», установленный на новый адрес. Украсьте его, чтобы пользователь знал, что его перенаправляют, вуаля.

Узнайте сами, как:)

...