如何在URL中添加标志?

时间:2012-07-23 22:00:22

标签: php string concatenation string-concatenation flags

我建立了一个网站,访问者将通过启动画面欢迎他们选择实际网站的配色方案;根据他们的选择,实际网站将加载不同的样式表。我收集这个可以通过将一个标志连接到URL,然后读取下一页上标记的URL来确定要加载的样式表来完成(例如,加载黑暗主题,网址将变为http://www.mywebsite.com/index-dark;点击灯光主题链接会生成网址http://www.mywebsite.com/index-light。问题是,我不知道如何在网址上添加标记,或者如何在其他网页上阅读此标记。我已经尝试谷歌搜索问题,但没有找到实用信息。如何做到这一点?

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

2 个答案:

答案 0 :(得分:1)

如果没有更多信息,我只能提供一些一般性建议。

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

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

这有几个好处:

  • 不需要使用网址重写,在最好的时候是一个容易出错的尝试
  • 允许持久设置(如果您使用cookie)并且不涉及复杂的网址。
  • 允许添加更多主题而无需更改大量代码,只需将设置添加到主题选择器和新的CSS文件。

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

答案 1 :(得分:0)

"标志"您提及的实际上可能是使用$_GET伪装的mod_rewrite个变量。你可以做的是编辑你的.htaccess文件以添加改写规则,例如www.mywebsite.com/index.php?style=index-dark更改为www.mywebsite.com/index-dark(遗憾的是,我没有经验告诉你如何做到这一点;我只知道它可以完成)并让你的PHP抓住$_GET['style']