【问题标题】:How can I add a flag to a URL?如何向 URL 添加标志?
【发布时间】:2012-07-23 22:00:21
【问题描述】:

我正在建立一个网站,访问者会看到一个闪屏,他们将在其中为实际网站选择配色方案;根据他们的选择,实际网站将加载不同的样式表。我认为这可以通过将标志连接到 URL 来完成,然后在下一页上读取标记的 URL 以确定要加载的样式表(例如,要加载深色主题,URL 将变为 http://www.mywebsite.com/index-dark;单击轻主题链接将使 URL http://www.mywebsite.com/index-light. 问题是,我不知道如何在 URL 中添加标志,或者如何在不同的页面上读取此标志。我试过谷歌搜索这个问题,但发现实用信息很少。如何做到这一点?

编辑:我想避免使用两个单独的页面,因为我将有多个主题;这意味着基本上多次复制我的根目录中的每个 HTML 页面,占用空间。不过,我喜欢隐藏 $_GET 变量的想法。

【问题讨论】:

  • 有几种更好的方法。
  • @IgnacioVazquez-Abrams 除非你暗示它们是什么,否则这不是很有帮助。
  • @IgnacioVazquez-Abrams:会话、cookies、url:对于匿名用户,我能想到的只有这些 - 你还有什么等同于“几个”的想法?
  • 仅使用 cookie/会话有什么缺点吗?
  • 仍在学习如何使用 cookie 和会话;使用它们进行开发需要更长的时间。否则,这将是一个可行的解决方案。

标签: php string concatenation string-concatenation flags


【解决方案1】:

没有更多信息,我只能给出一些一般性的建议。

所以我假设你正在用 PHP 构建一个页面,所以你可以有两个不同的 url 并使用 mod_rewrite 将 /index-dark 转换为 /index?style=dark 但这很糟糕。

您可能想要的是使用 cookie 或会话。基本上,您检查 cookiesession value 的主题设置,然后在生成页面时选择适当的 CSS 文件。

这有几个优点:

  • 不需要使用 url 重写,这在最好的情况下容易出错
  • 允许持久设置(如果您使用 cookie)并且不涉及复杂的 url。
  • 无需更改大量代码即可添加更多主题,只需将设置添加到主题选择器和新的 CSS 文件即可。

GET 变量通常只对随请求发送的特定数据有用,有点像 POST 变量主要用于表单和提交的数据。如果您想要持久设置,那么会话/cookie 是最佳选择。

【讨论】:

    【解决方案2】:

    您提到的“标志”实际上可能是使用mod_rewrite 伪装的$_GET 变量。您可以做的是编辑您的.htaccess 文件以添加重写规则,例如将www.mywebsite.com/index.php?style=index-dark 更改为www.mywebsite.com/index-dark(不幸的是,我没有具体如何执行此操作的经验;我只知道它可以完成)并让您的 PHP 捕获 $_GET['style']

    【讨论】:

      猜你喜欢
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2022-01-14
      • 2016-07-12
      • 2013-04-11
      • 2016-01-09
      • 1970-01-01
      相关资源
      最近更新 更多