2013-03-08 84 views

回答

2

恰恰相反,它不能通过重写url来完成
您需要设置

  • DNS服务器(指示所有子域名到服务器)
  • 和Web服务器(接受它们)。

然而,你不需要任何的查询字符串也不改写,因为你总是可以很容易地从HTTP_HOST变量有你的域。

+0

感谢你的回答。但是当我在地址栏中写入http://sub.domain.com时,它显示的页面无法显示,bcoz子域不是现有的子域。我无法使用HTTP_HOST来获取URL并提取单词“sub”。 – Arindam 2013-03-08 18:14:10

+0

如上所述,服务器必须配置为侦听子域名。假设DNS解析为正确的IP,则必须将每个子域设置为映射到相同的目录,或者如果您有权访问服务器配置,则可以为该域放入通配符记录。只是为了澄清一下......一旦完成了这一切,那么你可以使用URL重写来将sub.domain.com更改为sub.domain.com/page.php?c=sub,如果你愿意的话,指出你不妨使用HTTP_HOST变量。 – Josh 2013-03-08 18:23:00

2

我认为你应该分两步做。

步骤1

如果你有你的控制面板上直接访问,你应该去它,并使用星号*

这一步,你可以使用sub.domain.com后的通用虚拟子站点。如果你没有acees来控制面板,请管理员为你做。

第2步: 您应该修改下面一行.htaccess文件

#提取domain.com的子域部分

RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC] 

#检查子域部分不www和ftp和邮件

RewriteCond %1 !^(www|ftp|mail)$ [NC] 

#重定向传递作为参数的子域

RewriteRule ^.*$ http://www.domain.com/page.php?c=%1 [R,L] 

我希望所有的请求PHP脚本,这可以帮助你