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

问题描述 投票:1回答:4

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

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

我现在不想使用mod_rewrite。

php url mod-rewrite rewrite
4个回答
0
投票

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

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


0
投票

你实际要求的是不可能使用PHP(虽然,在JavaScript中你可以使用dreadful hashbang或支持不足的前沿pushState)。

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

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

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

例如Apache配置中的ScriptAlias /example /var/www/example.php

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


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的回答一个想法)


0
投票

你可以尝试使用,

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

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

© www.soinside.com 2019 - 2024. All rights reserved.