Php 使用htaccess对单个url进行多次重写

Php 使用htaccess对单个url进行多次重写,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我有一个多博客网站,其中有多个域。 问题是我需要以下语法的重写规则 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 所以问题是,我需要构造一个规则,将域转换为路径,然后再次处理其他事情,如下所示

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

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
所以问题是,我需要构造一个规则,将域转换为路径,然后再次处理其他事情,如下所示

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

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

在其他规则之前,您需要

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^.]+)\.
RewriteCond $1 !^domain/
RewriteRule ^(.*)$ /domain/%1/$1 [L]

你能给你的答案加个解释吗?可以。只是稍微改变了我的答案。