0

我将尽力解释这一点。我有一个附属网站正在设置。所以他们可以去注册,然后他们提供的用户名被写入数据库。然后他们可以访问他们的附属网站www.domain.com/affiliate/username

我有我的 .htaccess 文件重定向 url:www.domain.com/affiliate/home.php?affiliate=usernamewww.domain.com/affiliate/username

我希望这是有道理的。我需要的是如何在整个站点上保持用户名变量不变。因此,如果他们在主页上domain.com/affiliate/username并且他们点击关于页面或其他内容,我想确保它保持在domain.com/affiliate/username. 这样,当这个人去买东西时,我会确保它是通过附属网站而不是常规domain.com网站购买的。

任何帮助是极大的赞赏。我是新手,所以请耐心等待。谢谢!

4

1 回答 1

1

快速总结了 3 种方法,其中没有一个与 mod_rewrite / .htaccess 有任何关系(将此作为我刚刚学到的示例称为XY 问题):

  • 与他们来自的附属公司设置一个 cookie。设置 cookie 后忽略 URL,并将预订记入相应的附属公司。(如果您已经在使用 PHP 会话,则可以将关联公司粘贴在那里,这几乎是相同的事情。)
  • 重写 PHP 代码中的所有 URL,以便无论何时显示链接或表单,它都会推送到适当的 URL。更难编写并且更容易引入错误。
  • 使用子域而不是子目录 - 例如,affiliate42.example.com - 并使您的所有链接都相对。一个绊脚石是您需要一个涵盖所有子域的通配符 SSL 证书,这有点贵。

如果你真的想用重写规则来做到这一点,你可能会以某种方式将它与 cookie 选项结合起来:基于 cookie,以不同的方式重定向它们。但我不确定这样做有多大优势,通过 POST 提交的表单可能仍需要在 PHP 层处理,因为这些表单很难一致地重定向。

于 2013-07-03T23:37:13.710 回答