将子域名虚拟主机子域名重定向到路径

将子域名虚拟主机子域名重定向到路径

我使用 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>

相关内容