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

mbyulnm0  于 2023-02-07  发布在  PHP
关注(0)|答案(4)|浏览(208)

我怎样用php修改网址或部分网址?我丢失了我用过的代码,现在我在网上找不到答案。
我知道使用header('Location: www.site.com')会得到重定向,但我怎么能只显示假网址?
我现在不想使用mod_rewrite。

im9ewurl

im9ewurl1#

这在PHP中是不可能的,因为PHP是在服务器端执行的。你对url所做的任何改变都会触发页面加载。
我认为这在javascript中是可行的,但我真的怀疑这是不是一个好主意,如果你只想在用户地址栏中重写一个url,你就做错了,或者说做得不好;)

wkyowqbh

wkyowqbh2#

您实际上所要求的在使用PHP时是不可能的(尽管在JavaScript中您可以使用dreadful hashbang或支持较差的出血边缘pushState)。
然而,在对另一个答案的评论中,你说你的目标实际上是没有mod_rewrite的友好URI。这不是关于显示一个与真实的URI不同的URI,而是关于创建一个不基于简单的文件和目录集的URI。
这通常是通过mod_rewrite实现的(在PHP中),所以您应该坚持使用这种方法。
但是,您可以使用ScriptAlias来完成(假设您使用Apache,其他Web服务器可能有不同的方法)。
例如Apache配置中的ScriptAlias /example /var/www/example.php
然后在PHP脚本中读取$_SERVER['REQUEST_URI']以找出所请求的内容并拉入适当的内容。

dpiehjr4

dpiehjr43#

您可以通过在php脚本名称后添加目录来创建一些SEO友好的URL,这样您的URL就变成:
http://yoursite.com/script.php/arg1/arg2
在脚本.php中:

<?php

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

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

?>

如果你使用更多的htaccess技巧,那么你可以让script.php看起来像别的东西(见@大卫的回答)

omvjsjqw

omvjsjqw4#

你可以试试,
file_get_contents("https://website.com");
这不是要重定向,而是要触发API,您可以通过为上述函数分配一个变量来捕获输出。

相关问题