创建基于通配符的子域

时间:2011-12-12 20:21:29

标签: virtual subdomain wildcard

  

可能重复:
  Apache rewrite based on subdomain

我遇到了一个无法解决的问题。 Plz帮我解决了这个问题。

我的要求是: 我想在我的网站中将每个城市名称作为子域名。比如www.mysite.com,可以访问www.delhi.mysite.com,www.bangalore.mysite.com。这份清单可能会无止境。我的问题是我不想为每个子域创建文件夹。我想在URL中将其作为查询字符串处理,例如www.mysite.com?city=bangalore。这样我可以将请求重定向到单个文件。

我已经建立了LAMP架构。

在vhost文件中,它是

<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost
ServerName www.mysite.com
DocumentRoot /var/www
</VirtualHost>

<VirtualHost 127.0.0.1:80>
ServerAdmin webmaster@localhost
ServerName *.mysite.com
DocumentRoot /var/www
</VirtualHost>

并且还更新了.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.mysite\.com [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.mysite\.com
RewriteRule ^(.*)$ http://www.mysite.com/index.html [R,L]

但我仍然收到404错误。

我的方法是否正确?它可以实现吗?

请帮我这样做。

1 个答案:

答案 0 :(得分:0)

尝试以下几点:

RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$
RewriteRule ^/(.*)$           http://www.domain.com/%1/$1 [L,R]

加上规则,不将其应用于www前缀。

下次请使用搜索功能,之前已经提出此问题。

确保已启用重写模块。尝试将语句放入vhost配置而不是.htaccess