Apache 使用htaccess将子域重写到主域而不重定向

Apache 使用htaccess将子域重写到主域而不重定向,apache,.htaccess,mod-rewrite,rewrite,subdomain,Apache,.htaccess,Mod Rewrite,Rewrite,Subdomain,您好,我想将sub.domain.com重写为domain.com/sub. 但是sub2.domain.com也需要重写为domain.com/sub2和sub3等。 不允许更改url,因此不允许重定向。 我当前的代码是无止境的重定向: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC] RewriteRule ^(.*?)/?$ http://sub.domain.com/$1 [L

您好,我想将sub.domain.com重写为domain.com/sub.
但是sub2.domain.com也需要重写为domain.com/sub2和sub3等。
不允许更改url,因此不允许重定向。
我当前的代码是无止境的重定向:

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^(.*?)/?$ http://sub.domain.com/$1 [L]

如何更改.htaccess以修复此问题。

循环发生是因为您重写到
sub.domain.com
,然后由于存在
sub.
而触发cond,然后再次重写

如果不想更改地址,可以尝试改用代理标志。确保启用了
mod_proxy

RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^(.*)/?$ http://domain.com/%1/$1 [P]

非常感谢你。我现在知道了为什么会发生循环,但不知道如何在不重定向的情况下解决它。代理标志完成了此操作:)