【问题标题】:nice url pass variables不错的 url 传递变量
【发布时间】:2026-01-28 11:35:01
【问题描述】:

如果我不想更改漂亮的链接,将变量从一个页面传递到另一个页面的最佳方法是什么?我在 php 中使用 Zend Framework 路由器。

假设我有一个列表页面

<a href='/nice-link1/'>link1</a>
<a href='/nice-link2/'>link2</a>
<a href='/nice-link3/'>link3</a>

但我需要传递一个状态参数,例如 (?previous_search=dog)。 我不想向爬虫和用户公开与此不同的 url:

<a href='/nice-link1/'>link1</a>

因为用户可以共享链接。但同时我需要 /nice-link1/ 页面中的 previous_search 变量。我也想避免会话变量。我正在考虑使用 jquery,但我不确定。

谢谢!

【问题讨论】:

  • 不是会话变量,会话存储呢?
  • 用表单包装列表并通过邮寄方式发送数据怎么样?
  • 我需要链接被爬虫索引,所以link1很重要!

标签: php jquery zend-framework url-rewriting seo


【解决方案1】:
  1. 将您的数据保存为 cookie。 http://www.quirksmode.org/js/cookies.html

  2. 通过本地存储保存您的数据。 http://diveintohtml5.info/storage.html

  3. 让您的链接实际上是使用 POST 提交的表单,以便变量不会出现在 URL 字符串中。 http://www.w3.org/TR/html401/interact/forms.html#h-17.13.1

在您的实例中,我推荐使用 cookie 路由。它非常适合保存您希望在页面上响应的用户特定数据,例如以前的搜索。

【讨论】:

    【解决方案2】:

    我个人会使用 Zend_Session_Namespace 来存储变量并使它们远离 URL。

    http://framework.zend.com/manual/1.12/en/zend.session.html

    【讨论】: