Apache 重写子域
显然是一个非常简单的问题:我如何重写 (value1.example.com/(value2) 到 /(价值1)/(价值2) 我做了几件事都没有成功 提前谢谢。试试这个规则: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重新启
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我能告诉你为什么吗?