保持htaccess重定向整个网站

时间:2013-07-03 23:24:56

标签: php .htaccess

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

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

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

非常感谢任何帮助。我是新手,所以请耐心等待。谢谢!

1 个答案:

答案 0 :(得分:1)

快速总结的3种方法,其中没有一项与mod_rewrite / .htaccess有关(这是我刚刚学到的一个例子,叫做the XY Problem):

  • 与他们来自的联盟会员设置一个cookie。设置cookie后忽略URL,并将预订记入相应的联盟会员。 (如果你已经使用了PHP会话,你可以将联盟会员留在那里,这也是一样的。)
  • 重写您的PHP代码中的所有网址,以便每当您显示链接或表单时,它都会推送到相应的URL。更难编写,更容易引入错误。
  • 使用子域而不是子目录 - 例如affiliate42.example.com - 并使所有链接基于相对。一个绊脚石是你需要一个覆盖所有子域的通配符SSL证书,这个证书要贵一些。

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