使用 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=&cat=
所以事情是我需要构建一个规则,将域转换为路径,然后再次处理其他事情,如下所示。
RewriteRule ^([a-zA-Z0-9\-_]+).domain.com/(.*)$ www.domain.com//
([a-zA-Z0-9\-_]+)
匹配一个子域。
(.*)
匹配所有内容。
这会将 whatever.domain.com/anything
重写为 www.domain.com/whatever/anything
。
希望我理解正确,您的重定向示例与要求无关:
RewriteRule ^([^.]+)\.domain\.com/(.*)$ www.domain.com/domain//
[^.]+ 捕获子域,剩下的不言而喻,希望。
在你的其他规则之前,你需要
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^.]+)\.
RewriteCond !^domain/
RewriteRule ^(.*)$ /domain/%1/ [L]
我有一个多博客网站,其中有多个域。 问题是我需要以下语法的重写规则
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=&cat=
所以事情是我需要构建一个规则,将域转换为路径,然后再次处理其他事情,如下所示。
RewriteRule ^([a-zA-Z0-9\-_]+).domain.com/(.*)$ www.domain.com//
([a-zA-Z0-9\-_]+)
匹配一个子域。
(.*)
匹配所有内容。
这会将 whatever.domain.com/anything
重写为 www.domain.com/whatever/anything
。
希望我理解正确,您的重定向示例与要求无关:
RewriteRule ^([^.]+)\.domain\.com/(.*)$ www.domain.com/domain//
[^.]+ 捕获子域,剩下的不言而喻,希望。
在你的其他规则之前,你需要
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^.]+)\.
RewriteCond !^domain/
RewriteRule ^(.*)$ /domain/%1/ [L]