【发布时间】:2011-03-15 14:44:10
【问题描述】:
Apache 服务器上的情况(目录树):
maindomain.com/
|
|_ .htaccess (just an empty file, no rule in here)
|
|_ addondomain1.com/
| |
| |_ .htaccess
| |_ index.html
|
|_ addondomain2.com/
|
|_ .htaccess
|_ index.html
目前 addondomain1.com 中的文件可以通过以下方式查看:
http://www.addondomain1.com/index.html
http://www.addondomain1.com/
http://www.addondomain1.com
http://www.maindomain.com/addondomain1.com/index.html
我想重定向所有请求:
http://maindomain/addondomain1.com/some/path/anypage.html(带或不带“www”)
到相同的路径/文件,但在 addondomain1.com 下并且始终使用“www”:
http://www.addondomain1.com/some/path/page.html
为了尽量做到这一点,我在maindomain.com/addondomain1.com/.htaccess中放置了这条规则:
RewriteCond %{HTTP_HOST} !^www\.addondomain1\.com$
RewriteRule ^(.*)$ "http://wwww.addondomain1.com/$1" [R=301,L]
这个效果几乎很好,并且可以很好地重定向以下所有内容:
http://addondomain1.com/index.html >> http://www.addondomain1.com/index.html
http://www.addondomain1.com/ >> http://www.addondomain1.com/
http://www.addondomain1.com >> http://www.addondomain1.com
http://www.maindomain.com/addondomain1.com/index.html >> http://www.addondomain1.com/index.html
http://www.maindomain.com/addondomain1.com/ >> http://www.addondomain1.com/
http://maindomain.com/addondomain1.com/ >> http://www.addondomain1.com/
但是很遗憾去的时候:
http://maindomain.com/addondomain1.com
http://www.maindomain.com/addondomain1.com
注意上面的两个链接都没有最后的斜杠,它重定向到:
http://www.addondomain1.com//server/root/path/addondomain1.com
我认为正则表达式^(.*)$ 正在获取“addondomain1.com”作为一部分,因为缺少最后的斜杠。您知道如何解决/解决此问题吗?
谢谢!
【问题讨论】:
-
嗯...您是否希望人们首先能够访问
http://maindomain.com/addondomain1.com? -
@Tim:感谢您关注这个问题。实际上不,我希望当有人尝试访问“maindomain.com/addondomain1.com/some/path/page.html”时,它总是被重定向到“addondomain1.com/some/path/page.html”。我更新了问题以使其更具可读性。
标签: apache mod-rewrite dns cpanel add-on