【问题标题】:How to update a URL in PHP?如何在 PHP 中更新 URL?
【发布时间】:2012-07-29 06:22:26
【问题描述】:

我的当前网址为: http://example.com/abcdef

当一个事件发生时(点击提交按钮等),当前的 url 需要用一个不同于“abcdef”的值来更新。例如, http://example.com/xaxaxa

“xaxaxa”存储在 PHP 中的一个变量中(基本上来自 mySQL)。

我知道如何“获取”(使用 $_SERVER['SCRIPT_NAME'])php 中的当前 url,但谁能告诉我如何“设置”一个。我不想实际重定向到另一个页面(例如使用位置:..)。我只需要更新网址。

【问题讨论】:

    标签: php


    【解决方案1】:

    无法使用在服务器端运行的 PHP 来完成。为此使用 JavaScript/HTML5。 请参阅 location.hashhistory.pushState

    【讨论】:

    • 你不能以某种方式/形式使用 .htaccess RewriteEngine 吗?
    • 但这仍然需要 URL 以某种方式更改,以触发重写规则。这只有通过服务器回发才有可能,并且 OP 还没有准备好使用 location: ...
    • 你能给我看一个 Javascript 的例子吗?如果没有,一个类似资源的链接也很好。谢谢。
    • 查看部分答案here
    • 另外,这是一个非常棒的教程,带你了解 html5 历史 API -> spoiledmilk.com/blog/…
    【解决方案2】:

    【讨论】:

      【解决方案3】:

      可以通过HTAccess正确路由页面,示例代码;

      RewriteEngine on

      #Force redirect for 404 errors to /index.php

      RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f

      RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d

      RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-l

      RewriteRule ^/(.*)$ /index.php [L,QSA]

      对于其他问题,您需要更新链接以在 URL 中包含新位置。

      【讨论】:

      • 这仍然需要服务器回发,否则 htaccess 重写规则将无法启动。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-25
      • 2017-03-17
      • 1970-01-01
      • 2011-05-05
      • 2021-07-26
      • 1970-01-01
      • 2011-04-03
      相关资源
      最近更新 更多