繁体   English   中英

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

[英]PHP alter URL without redirecting to it?

如何使用 php 更改 url 或其中的一部分? 我丢失了我使用的代码,现在我无法在网上找到答案。

我知道使用header('Location: www.site.com')会被重定向,但我怎样才能显示假 URL?

我现在不想使用 mod_rewrite。

您可以尝试使用,

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

这不会重定向而是触发 api,您可以通过将变量分配给上述函数来捕获输出。

在服务器端执行的 PHP 中是不可能的。 您对 url 所做的任何更改都会触发页面加载。

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

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

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

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

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

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

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

您可以通过在 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 的答案以获得想法)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM