php: как перенаправить на пользовательский URL, например «blar: // abc»

#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 протоколом.