【问题标题】:PHP alter URL without redirecting to it?PHP更改URL而不重定向到它?
【发布时间】:2011-07-04 04:57:47
【问题描述】:

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

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

我现在不想使用 mod_rewrite。

【问题讨论】:

  • 您必须大幅改进您的问题,添加背景故事和您想要获得的特定示例。否则它将被关闭。
  • 例如,您希望用户访问 www.fakebank.example.com,但认为他们访问的是 www.theirbank.example.com?没有机会,对不起。
  • 你想成为黑客吗?
  • 顺便说一句,Location 标头采用协议,www.site.com 将重定向到yourdomain.com/www.site.com ;-)
  • 您只能在计算机主机、hosts 文件等上执行此操作。

标签: php url mod-rewrite rewrite


【解决方案1】:

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

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

【讨论】:

  • 不,我只是想不使用 mod 重写,而是使用 php 制作 seo 友好的 url...它认为一旦我可能错了它就醒了。你知道像 mod_rewrite 一样,有一种方法可以显示一个扩展,比如 index.html,但是来自 index.php 的提要我希望用 php 做同样的事情
  • 正在捕捉'404-page not found' 你怎么想的? (在将未找到的“页面”重定向到控制器的意义上)
【解决方案2】:

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

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

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

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      你可以试试,

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

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

      【讨论】:

        猜你喜欢
        • 2018-02-07
        • 2011-01-02
        • 2013-05-31
        • 2015-04-02
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多