Apache 重写子域

Apache 重写子域,apache,url,mod-rewrite,subdomain,Apache,Url,Mod Rewrite,Subdomain,显然是一个非常简单的问题:我如何重写 (value1.example.com/(value2) 到 /(价值1)/(价值2) 我做了几件事都没有成功 提前谢谢。试试这个规则: RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$ RewriteCond $1/%1 !^([^/]+)/\1$ RewriteRule ^/([^/]+)? /%1%{REQUEST_URI} [L] 一些解释:我之前的建议导致了无限递归,因为这会导致使用新URL重新启

显然是一个非常简单的问题:我如何重写

(value1.example.com/(value2)

/(价值1)/(价值2)

我做了几件事都没有成功

提前谢谢。

试试这个规则:

RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$
RewriteCond $1/%1 !^([^/]+)/\1$
RewriteRule ^/([^/]+)? /%1%{REQUEST_URI} [L]
一些解释:我之前的建议导致了无限递归,因为这会导致使用新URL重新启动重写过程:

但是,请记住,如果
重写规则
生成内部重定向(在每个目录上下文中重写时经常发生),这将重新注入请求,并将导致从第一个
重写规则
开始重复处理

第二个条件将避免这种情况,因为它将子域部分与第一个路径段进行比较。只有当它们不同时,条件才为真,重写才会发生。

尝试以下规则:

RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$
RewriteCond $1/%1 !^([^/]+)/\1$
RewriteRule ^/([^/]+)? /%1%{REQUEST_URI} [L]
一些解释:我之前的建议导致了无限递归,因为这会导致使用新URL重新启动重写过程:

但是,请记住,如果
重写规则
生成内部重定向(在每个目录上下文中重写时经常发生),这将重新注入请求,并将导致从第一个
重写规则
开始重复处理


第二个条件将避免这种情况,因为它将子域部分与第一个路径段进行比较。只有当它们不同时,条件才是真的,重写才会发生。

嗨,gumbo,在我的htaccess上写下之后,我没有任何变化。你能告诉我为什么吗?我只是更改了域名,谢谢。@Anggiaziz我能告诉你为什么吗?嗨,gumbo,我在我的htaccess上写了这些之后没有任何更改。你能告诉我为什么吗?我刚换了域名,谢谢。@Anggiaziz我能告诉你为什么吗?