如何对任何托管域的根域进行透明重写

时间:2016-10-08 16:01:54

标签: .htaccess mod-rewrite url-rewriting

我没有找到以下场景的示例,我正在努力实现:

  • 将任何停放的域根目录重写为子文件夹中的页面。
  • 目标文件名必须是停放的域根目录,并删除了点。
  • 重写是透明的,根URL将保持不变。
  • 此重写不包括主域根。

实施例: anyparkeddomain.com将转到primarydomain.com/foo/anyparkeddomaincom

我想出了以下内容,但这不能正常运行,因为我认为它需要一个通配符才能使任何域都能正常工作。

RewriteEngine on
RewriteRule ^(.*)\.([^/]*)\.$ /$1$2 [L,R=301] 
RewriteCond %{HTTP_HOST} primarydomain\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /foo/$1 [L]

1 个答案:

答案 0 :(得分:1)

你有正确的想法。在第一条规则之后,试试这个:

# parked domains (redirect drom www to non-www, or vice-versa should already be done)
RewriteCond %{HTTP_HOST} !=primarydomain.com [NC]
# for root only, serve hidden directory
RewriteRule ^$ foo/%{HTTP_HOST}/ [L,DPI]
# remove dots from hidden directory
RewriteRule ^(foo/[^/.]*)\.([^/]*/)$ $1$2 [N]

下一遍将从该目录中获取索引文件,假设这是你需要的。