肯了几天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地址重写中就有这个实例。 |

