肯了几天Apache文档,还是没找到答案,希望大家帮助。
有一虚拟主机,使用域名:www.abc.com 和 www.abc.net
DocumentRoot 指向 /www/abc_com/
现在我想使用Rewrite技术把 www.abc.net
的 DocumentRoot 指向 /www/music/
前提条件是不另开设虚拟主机。
请问有没有办法做到,如何实现?
shaoyiner 回复于:2005-05-11 09:47:42
使用redirect应该可以实现的,过程如下:
vi /etc/httpd/conf/httpd.conf
添加如下命令:
Redirect /www/music http://www.abc.com/www/abc_com
你试试吧,应该可以的.这叫做页面重定向.
voaneos 回复于:2005-05-11 10:27:11
老哥的方法应该不行,
因为我要把www.abc.net 的主目录指向/www/music/
而在访问时重定向,是访问不了/www/music/目录的,
因为music目录与当前的根目录是在同一级的
goodloveboys 回复于:2005-05-11 11:23:42
RewriteCond %{SERVER_NAME} www.abc.net
Redirect ^/$ /www/music/ [L]
voaneos 回复于:2005-05-11 14:44:48
我使用了 goodloveboys 的方法,结果出错:
Redirect to non-URL
goodloveboys 回复于:2005-05-11 15:17:16
RewriteEngine on
RewriteCond %{SERVER_NAME} www.abc.net
RewriteRule ^/$ /www/music/ [L]
汗, 我把Redirect ^/(.*)$ /www/music/$1 [L] 这个玩意写错了, 倒
voaneos 回复于:2005-05-12 17:08:00
goodloveboys 老哥,按我的实浅和理解,都好像不行。
按我理解
“RewriteRule ^/$ /www/music/ [L] ”
这只是重定向到 http://www.abc.com/www/music/
因为当前的DocumentRoot 指向 /www/abc_com/
而我想要的效果是把 abc.net 的根目录指定在 /www/music/
而不是重定向到当前根目录下的某个子目录。
goodloveboys 回复于:2005-05-12 17:55:28
我试了下,相对路径也可以,
另全部改写应该写成
RewriteRule ^/(.*)$ /../../$1 [L]
汗,这样竟然也成, 不过可能会受到部分安全设置的影响
出现问题应该多试试,多看看,然后再问,呵呵
voaneos 回复于:2005-05-15 22:19:33
终于成功了,感谢大家的帮忙。特别感谢goodloveboys 大侠提点。
最后使用%{HTTP_HOST}测试成功的,
因为goodloveboys 大侠%{SERVER_NAME}会导不成功的原因是
无论使用什么域名访问,它的SERVER_NAME始终是:www.abc.com
goodloveboys 回复于:2005-05-16 14:41:42
哦, 呵呵, 这点我没有注意, 在我机器上不同的,
114 回复于:2005-07-06 14:21:30
http://www.liaomeng.com/Manual/apache20(中文apache20文档)
上的URL地址重写中就有这个实例。