求一个Apache Rewrite

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航