我使用 Apache 的虚拟主机为 greptweet.com 设置了大量子域名,其中每个 Twitter 用户名都是一个子域名,例如<username>
.greptweet.com。问题是...子域名不能有下划线!:)
现在我已经重组了网站,我想将所有访问子域的用户永久重定向到以下路径:
<username>
.greptweet.com 到路径结构 greptweet.com/u/<username>
例如http://kaihendry.greptweet.com/到http://greptweet.com/u/kaihendry/
理想情况下,我希望在 Apache httpd.conf<VirtualHost>
节中实现这一点,而不是将位写入 /srv/www/
答案1
类似这样的事情会起作用:
<VirtualHost *:80>
ServerName kaihendry.greptweet.com
ServerAlias *.greptweet.com
DocumentRoot /var/www/localhost/htdocs/
Include /etc/apache2/vhosts.d/default_vhost.include
<Directory "/var/www/localhost/htdocs">
Order allow,deny
Allow from all
</Directory>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)\.greptweet\.com [NC]
RewriteRule ^(.*)$ http://greptweet.com/u/%1 [R,L]
</VirtualHost>