PHP изменить URL без перенаправления на него? - PullRequest
1 голос
/ 25 февраля 2011

Как я могу изменить URL или его часть с помощью php? Я потерял код, который использовал, и теперь не могу найти ответ в Интернете.

Я знаю, что использование header('Location: www.site.com') перенаправляет, но как я могу просто показать фальшивый URL?

Я не хочу сейчас использовать mod_rewrite.

Ответы [ 4 ]

0 голосов
/ 14 июня 2017

Вы можете попробовать использовать,

file_get_contents("https://website.com");

Это не будет перенаправлять, но запустить API, и вы можете поймать вывод, назначив переменную выше функции.

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

То, что вы на самом деле просили, невозможно при использовании PHP (хотя в JavaScript вы можете использовать ужасный хэш-банг или плохо поддерживаемый передний край pushState ).

Однако в комментарии к другому ответу вы указали, что ваша цель - это дружественные URI без mod_rewrite.Речь идет не о том, чтобы показать другой URI по сравнению с реальным, а о создании URI, который не основан на простом наборе файлов и каталогов.

Этот обычно достигается (в PHP-земле) с mod_rewrite, поэтому вам, вероятно, следует придерживаться этого подхода.

Однако вы можете сделать это с помощью ScriptAlias ​​(при условии, что вы используете Apache, другие веб-серверы могут иметь другие подходы).* Например, ScriptAlias /example /var/www/example.php в конфигурации Apache.

Затем в PHP-скрипте вы можете прочитать $_SERVER['REQUEST_URI'], чтобы узнать, что запрашивается, и получить соответствующий контент.

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

Вы можете сделать несколько оптимизированных для SEO URL-адресов, добавив каталоги после имени php-скрипта, чтобы ваши URL-адреса стали:

http://yoursite.com/script.php/arg1/arg2

В script.php:

<?php

$args = preg_split('#/#', $_SERVER['PATH_INFO']);

echo "arg1 = ".$args[1].", arg2 = ".$args[2]."\n";

?>

если вы используете еще одну хитрость htaccess, то можете сделать скрипт script.php похожим на что-то еще (см. Ответ Дэвида для идеи)

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

Это невозможно в PHP, который выполняется на стороне сервера.Любое изменение URL-адреса, которое вы сделаете, вызовет загрузку страницы.

Я думаю, что это возможно в javascript, но я действительно сомневаюсь, что это хорошая идея, если вы хотите переписать URL-адрес только в адресной строке пользователя., ты делаешь что-то не так или плохо;)

...