PHP改变URL而不重定向到它?

时间:2011-02-25 10:04:23

标签: php url mod-rewrite rewrite

如何使用php更改网址或部分内容?我丢失了我使用的代码,现在我无法在线找到答案。

我知道使用header('Location: www.site.com')获取重定向但我怎么才能显示虚假网址?

我现在不想使用mod_rewrite。

4 个答案:

答案 0 :(得分:0)

在PHP中执行服务器端是不可能的。对您所创建的网址进行的任何更改都会触发网页加载。

我认为在javascript中可能有可能,但我真的怀疑这是一个好主意,如果你只想在用户地址栏中重写网址,你做错了什么,或者做错了;)

答案 1 :(得分:0)

您实际要求的内容是不可能使用PHP(尽管在JavaScript中您可以使用dreadful hashbang或支持不足的前沿pushState)。

但是,在对另一个答案的评论中,您声明您的目标实际上是没有mod_rewrite的友好URI。这不是关于显示与真实URI不同的URI,而是关于创建不基于一组简单文件和目录的URI。

通常使用mod_rewrite实现(在PHP-land中),所以你应该坚持使用这种方法。

但是,您可以使用ScriptAlias(假设您使用Apache,其他Web服务器可能有不同的方法)。

e.g。 Apache配置中的ScriptAlias /example /var/www/example.php

然后在PHP脚本中,您可以阅读$_SERVER['REQUEST_URI']以找出所请求的内容并提取相应的内容。

答案 2 :(得分:0)

您可以通过在php脚本名称后面添加目录来制作一些SEO友好的URL,以便您的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看起来像其他东西(参见@ David的回答)

答案 3 :(得分:0)

您可以尝试使用,

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

这不是重定向而是激活api,你可以通过为上面的函数赋值来捕获输出。