【发布时间】:2012-12-03 20:29:52
【问题描述】:
我是网络世界的菜鸟,所以我很抱歉......我尝试了很多在 SO 和其他地方找到的东西,但我没有设法做我想做的事。而且 Apache 文档……太完整了。
基本上我想做的是将我的域重定向到一个子文件夹。我为此找到了简单的解决方案(实际上有很多不同)。
http://www.foo.com/
http://foo.com/
应该重定向到/bar 并显示为http://foo.com/
使用以下我得到了预期的结果:
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.foo.com$
RewriteRule ^/?$ "http\:\/\/foo.com" [R=301,L]
RewriteRule ^((?!bar/).*)$ bar/$1 [NC,L]
但我也希望子文件夹和文件名在明确输入时不出现,即:
http://www.foo.com/index.html
http://foo.com/index.html
http://wwww.foo.com/bar
http://foo.com/bar
http://wwww.foo.com/bar/index.html
http://foo.com/bar/index.html
应该都显示为
http://foo.com/
这可能吗?
显然使用 .htaccess,因为我在虚拟主机上。
谢谢
【问题讨论】:
-
在第一个重定向规则中,URI(例如
/bar/index.html)被删除,所以没有任何东西可以附加到最后一个重写规则。我认为不可能按照您的要求将其概括。如果它适用于/bar是因为您在规则中明确添加了它。
标签: .htaccess mod-rewrite redirect hide subdirectory