#php
#php
Вопрос:
Окружающая среда:
- Apache 2.4.34
- PHP 7.2.19
- Chrome 85.0.4183.121
Я запускаю коды в localhost.
Я хочу перенаправить запрос на URL-адрес по другой схеме, отличной от http или https, например «blar: // abc». Я запускаю следующий код, но он не работает. Это правильное поведение?
<?php
$location = 'blar://abc';
header( "Location: $location" );
return;
?>
Я попытался перенаправить в папку на моем компьютере, выполнив следующий код. Но это тоже не работает.
<?php
$location = 'C:test';
header( "Location: $location" );
return;
?>
Конечно, перенаправление на порядковый веб-сайт работает.
<?php
$location = 'https://stackoverflow.com';
header( "Location: $location" );
return;
?>
Комментарии:
1. В прошлый раз, когда это работало, номер года начинался с 1. Попробуйте использовать URL-адрес какого-либо общедоступного веб-сайта (почему бы и нет
https://stackoverflow.com
?) Или использоватьhttp://example.org
вместо этого. Никто не будет жаловаться.2. @axiac извините, я, возможно, не понял. с общедоступным веб-сайтом это работает. Я хочу знать, можете ли вы перенаправить на URL в другой схеме.
3. Вы пробовали
curl
редактировать заголовки / тело, чтобы увидеть, чтоheader()
на самом деле делает этот вызов?4. Вы не можете перенаправить на файл, не используя
file://
5. Вы можете перенаправить на все, что захотите. Вопрос в том, установил ли посетитель сайта (все посетители сайта) программу, которая может обрабатывать протокол. Это ограничивает используемые протоколы
http
,https
,mailto
и старым (и менее используемым в настоящее время)ftp
протоколом.