PHP перенаправить на другой сайт - PullRequest
2 голосов
/ 22 февраля 2011

У меня есть каталог с именем "goto" и файл внутри с именем index.php.В настоящее время в файле index.php находится следующее:

<?php
$url = $_GET['url'];
header("Location: $url");
?>

На данный момент, чтобы перенаправить на другой URL-адрес, я должен ввести это в адресную строку:

http://mysite.com/goto/?url=http://google.com

Буду признателенесли бы вы могли сказать мне, как я мог бы изменить этот URL, чтобы я мог перенаправить пользователя на веб-сайт, введя его в адресную строку:

http://mysite.com/goto/http://google.com

Ответы [ 4 ]

7 голосов
/ 22 февраля 2011

Используйте mod_rewrite и .htaccess для перезаписи http://mysite.com/goto/http://google.com как http://mysite.com/goto/?url=http://google.com

RewriteEngine On
RewriteRule ^goto/(.+)$ /goto/?url=$1 [L]

В зависимости от конфигурации вашего сервера вам может потребоваться включить/ в вашем пути перезаписи (т.е. ^/goto/(.+)$).

2 голосов
/ 22 февраля 2011

Если вы не хотите стать центром вредоносных программ, я искренне рекомендую вам не делать этого.

Если вы хотите разрешить перенаправление таким способом, используя http://mysite.com/goto/google, а затем отработатьдомен из белого списка доступных, разрешенных, направлений.

0 голосов
/ 22 февраля 2011
Метод

@ ide будет работать ... но вы также можете попросить PHP-скрипт проверить $_SERVER['PATH_INFO'], как эта часть URL будет передана в CGI-скрипт.

(хотя, если там есть вопросительный знак, вам также нужно либо убедиться, что он закодирован в URI, либо получить QUERY_STRING; вы также потеряете любую часть после хэша, но у вас будет та же проблема с вашей текущей схемой)

0 голосов
/ 22 февраля 2011

Вам нужно будет проанализировать данные, которые могут быть немного сложнее, потому что вы должны различать разницу между вашим URL и другим URL.

Я предлагаю не делать этого, потому что второй заголовокПосле запуска вы не увидите URL-адрес, и вам будет лучше просто передать его как инструкцию get или сообщение.

EDIT

Если вы настроены,parse_url () - это то, что вы хотите.:)

...