我有以下多级子域:
这些域的内容(index.html,css,JavaScript)位于:
所有初始域级别指向 root 。
在.htaccess中,如何将这些域(无重定向)指向各自的文件夹?到目前为止,我有以下内容:
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.(.*)\.app.example\.com
RewriteRule ^$ /%1/%2/%3/$1 [L,NC,QSA]
但是这段代码的问题是虽然它指向正确的文件夹,但它只显示" index.html"文件所有其他内容(css,javascript ...)出现404错误。
例如:
root / aaa / bbb / ccc /style.css
也应该可以通过
访问aaa.bbb.ccc .app.example.com / style.css中
但我得到了404 aaa.bbb.ccc.app.example.com/style.css
答案 0 :(得分:0)
您的问题位于RewriteRule pattern
^$
,因此它与URI
匹配,而^
则结束$
,意味着没有URI,在这种情况下,它仅匹配请求aaa.bbb.ccc.app.example.com/
以及您说index.html
的原因。
所以,改变这一行:
RewriteRule ^$ /%1/%2/%3/$1 [L,NC,QSA]
由此:
RewriteRule ^(.*)$ /%1/%2/%3/$1 [L,NC,QSA]
UPDATE:您应该排除给定目录以避免循环:
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.(.*)\.app\.example\.com
RewriteCond %{REQUEST_URI} !^/(aaa|xxx|111)/
RewriteRule ^ /%1/%2/%3%{REQUEST_URI} [L,NC,QSA]