本文介绍了重写子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
显然,一个pretty简单的问题:我如何重写
Obviously a pretty simple question: how do I rewrite
(值).example.com的/(值2)
到
/(值)/(值2)
我试过几件事情没有成功。
I've tried a couple of things without success.
感谢您提前。
推荐答案
试试这个规则:
RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$
RewriteCond $1/%1 !^([^/]+)/\1$
RewriteRule ^/([^/]+)? /%1%{REQUEST_URI} [L]
一些解释:我的previous建议引起了无限递归作为的导致重写进程的重新启动新网址:
Some explanation: My previous suggestion caused an infinite recursion as the L flag causes a restart of the rewriting process with the new URL:
但是请记住,如果重写规则
产生一个内部重定向(在每个目录范围内重写时经常发生),这将重新注入该请求,并会引起要反复从第一重写规则
。
的第二个条件将避免这个,因为它与第一路径段的子域部分进行比较。且仅当它们是不同的情况是真实的,重写发生。
The second condition will avoid this as it compares the subdomain part with the first path segment. And only if they are different the condition is true and the rewrite takes place.
这篇关于重写子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!