我保证我已经在这里寻找了几个小时的答案,但它仍然没有工作。这是我所拥有的:
RewriteCond %{HTTP_HOST} ^([^\.]*)\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/%1/ [NC]
RewriteRule ^(.*)$ /%1/$1 [L]
这会创建一个无限循环,因为第二行没有正确匹配。但是,如果我将%1
第二行替换为www
and go to www.example.com
,它工作正常。显然它不再适用于其他子域,但是当我明确输入www
第二行而不是让它%1
照顾它时,这一事实很奇怪,因为我知道 is 的%1
值www
。
我要完成的工作如下:我有一个域“example.com”。在根目录中有几个子目录,比如说“dev”、“test”和“www”。在我的 htaccess 文件中,如果子域为空 (example.com)、w (w.example.com) 或 ww (ww.example .com),其他任何东西都不管(dev.example.com,test.example.com)。现在这部分文件应该根据子域将请求重写到正确的子目录。因此,像“dev.example.com/something.jpg”这样的请求被重写(而不是重定向)到“dev.example.com/dev/something.jpg”。
这里的计划是能够在服务器上创建开发和测试环境,而不必在我的家庭服务器上重新创建环境,确保所有服务器设置完全相同。此外,我想它可以做任何我想让它做的事情,但这是当务之急。