Apache vHost mod_rewrite

时间:2016-11-17 14:05:01

标签: mod-rewrite apache2

我在Apache中有一个vHost,我想将所有子域重写到子域www.domain.tld,其中tld-part应该是用户输入的那个。

我已经查看了mod_rewrite的文档,但至少我不明白:)我希望有人可以将它推荐给我。

我的vHost-Config中的实际部分如下,...但仅匹配子域问题,但不匹配tld问题:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^([a-z.]+)?domain\.de$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%1domain.de%{REQUEST_URI} [R=301,L]

但我不明白我的域名之前的%1 ...

1 个答案:

答案 0 :(得分:0)

RewriteCond %{HTTP_HOST} ^(?!www\.)(?:[^.]+\.)?(domain\.[^.]+)$ [NC]
RewriteRule .* http://www.%1/$0 [R=301,L]

重定向所有子域不是www的请求,具有0或1个sudomain级别,域为domain并且具有一个级别的tld。如果您还需要,请说.co.uk,则需要修改。