Username: Password:

求一个Apache Rewrite
来源:ChinaUnix.net作者:ChinaUnix.net 发布时间:2005-09-13 17:31:00


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

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅