htaccess重写将目录结构附加到url

时间:2016-11-03 16:20:22

标签: .htaccess mod-rewrite

我试图将用户选择的子域映射到Web文件夹上的用户目录,如下所示:

user1的user1.domain.com指向/ domains / user1

如果使用尾部斜杠访问用户文件夹中的子目录,则可以正常工作。没有尾随斜线,它会附加整个结构。

工作正常 - > user1.domain.com/folder1/ 不起作用 - > user1.domain.com/folder1

访问user1.domain.com/folder1时,它会将用户重定向到user1.domain.com/domains/user1/folder1

访问user1.domain.com/folder1/(注意尾部斜杠),它可以正常工作。

当两个目录很深时,它按预期工作 user1.domain.com/folder1/folder2和user1.domain.com/folder1/folder2/正常工作。

这是现有的htaccess文件

#enable user subdomains
RewriteCond %{HTTP_HOST} !www\.domain\.com$[NC]
RewriteCond %{HTTP_HOST} ^(.*?)\.domain\.com$
RewriteCond %{REQUEST_URI} !domains/(.*?)
RewriteRule ^(.*) /domains/%1/$1/

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

# enable user subdomains
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.domain\.com$ [NC]
RewriteRule ^(?!domains(?:$|/)).* domains/%1/$0 [L]

不要添加另一个尾部斜线,否则你最终会在内部使用双打。