使用 HTaccess 对单个 URL 进行多次重写


multiple rewrite for a single url using htaccess

我有一个多博客网站,其中有多个域。问题是我需要以下语法的重写规则

XXX.domain.com/{any other things} to www.domain.com/domain/XXX/{any other things}

我也为下面的规则写了一套规则

^domain/([a-zA-Z0-9]+)/cat/([a-zA-Z0-9]+)$ index.php?domain=$1&cat=$2

所以事情是我需要构建一个将域转换为路径的规则,然后再次处理其他事情,如下所示。

在你其他规则之前,你需要

RewriteCond %{HTTP_HOST} !^www'.
RewriteCond %{HTTP_HOST} ^([^.]+)'.
RewriteCond $1 !^domain/
RewriteRule ^(.*)$ /domain/%1/$1 [L]
RewriteRule ^([a-zA-Z0-9'-_]+).domain.com/(.*)$ www.domain.com/$1/$2

([a-zA-Z0-9'-_]+)匹配子域。
(.*)匹配一切。

这会将whatever.domain.com/anything重写为 www.domain.com/whatever/anything

我希望我理解正确,您的重定向示例与要求无关:

RewriteRule ^([^.]+)'.domain'.com/(.*)$  www.domain.com/domain/$1/$2

[^.]+捕获子域,其余的不言而喻,我希望。