1

我已经看到了大量基于子域的 URL 重写示例,但我正在尝试基于域名本身进行 URL 重写,特别是从包含域名的子文件夹中提供内容。

例如,我想

http://www.site1.com/sub/folders/long-html-filename.htm被重写为 /sites/www.site1.com/sub/folders/long-html-filename.htm 或 http:// /www.masterdomain.com/sites/www.site1.com/sub/folders/long-html-filename.htm

我已经能够自己做很多重写正则表达式,但我在这方面遇到了一堵砖墙。

谢谢!

4

2 回答 2

0

您是否尝试过使用 %{HTTP_HOST} 来捕获主机名?也许这样的事情会起作用:

RewriteRule ^/(.*) /sites/%{HTTP_HOST}/$1
于 2011-11-09T03:08:48.637 回答
0

凯文 - 你很接近。IIRF 的作者让我走完了剩下的路:

RewriteRule ^/(?!sites/)(.*)$ /sites/%{HTTP_HOST}/$1

现在我只是想弄清楚如何将它与强制的 WWW RedirectRule 结合起来。

另一个绊脚石......我有这个:

RewriteCond %{HTTP_HOST} ^(?!www)[^\.]+\.[^\.]+$ [I]
RedirectRule ^/(.*) http://www.%{HTTP_HOST}/$1 [R=301]

RewriteRule ^/(?!sites/)(.*)$ /sites/%{HTTP_HOST}/$1

但这似乎不起作用,我只是超时了。

于 2011-11-10T16:21:38.600 回答