如何将标志添加到URL


How can I add a flag to a URL?

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

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

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

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

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

这有几个优点:

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

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

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