一个站点的自定义域

时间:2014-11-05 18:33:59

标签: php apache .htaccess mod-rewrite dns

我在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等仍然有用。

这是可能的,最好的方法是什么(mod_write,DNS,在PHP中)?

注意我已经有一个重写规则来添加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 个答案:

答案 0 :(得分:1)

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

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

然后使用mod_rewrite测试HTTP&#39; Host:`标头以查看用户正在访问哪个域,并根据需要重新编写。