2014-11-05 54 views
0

我在Apache上有一个php web应用程序,它支持查询字符串中由dist_id标识的多个用户。所以https://main.com/login?dist_id=21表示从https://main.com/login?dist_id=26一个站点的自定义域名

一个不同风格的网页我想要做的就是为每个用户注册一个域名,并保持清洁的网址,这样https://brandx.com/login无形指向https://main.com/login?dist_id=21。登录后,我不再需要dist_id,但我想保留用户的域名,以便https://brandx.com/products?show=1等仍然有效。

这是可能的,什么是最好的方式来做到这一点(PHP中的mod_write,DNS)?

注意我已经有一个重写规则来添加index.php,它是所有请求的入口点。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [QSA,L] 

我想我已经得到了亲近:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?dist_id=26 [QSA,L] 

在此登录后,系统的工作原理:https://brandx.com/categories但是这给一个404错误:https://brandx.com/categories?parent_id=12329

+1

我不知道如何解决这个问题,但我可以问你为什么这样做?仅仅为多个域设置apache不是很容易吗? – icecub 2014-11-05 18:39:43

回答

1

想必所有这些 “地王” 会共享相同的URL结构(减去查询参数)?在这种情况下,为您的main.com网站设置定义可能最为简单,然后将所有brandx.com网域添加为别名,例如,

<virtualhost *:80> 
    ServerName main.com 
    ServerAlias brandx.com brandy.com brandz.com etc... 
</virtualhost> 

然后你使用mod_rewrite测试HTTP“主持人:'头,查看用户在进行该域名,并酌情重新写。

+0

这几乎是我的想法,但当谈到mod_write时,我是个白痴。主机测试和重写规则是什么样子? – Rooster242 2014-11-05 19:05:33

+0

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond显示您可以测试的变量,包括http_host – 2014-11-05 19:07:24