肯了幾天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地址重寫中就有這個實例。 |

