Chinaunix

标题: 很想知道 rewrite能实现url隐藏转发吗~~~ [打印本页]

作者: fz-L    时间: 2005-12-05 19:44
标题: 很想知道 rewrite能实现url隐藏转发吗~~~

比如在浏览器上输入www.abc.com 转发到www.abc.com/abc/bcd/index.asp,但显示的地址依然是www.abc.com,如果可以的话,能演示转发代码的感激不尽了
作者: HonestQiao    时间: 2005-12-06 09:49
RewriteEngine  on

RewriteRule    ^/$  http://www.abc.com/abc/bcd/index.asp  [P]
作者: fz-L    时间: 2005-12-06 10:55

还是版主好拉,谢你啊

还有我想问问,如果我现在想学好rewrite,应该怎么学呢,比如^/$  [P]   这些符号,我都不知道是什么东西呢
作者: HonestQiao    时间: 2005-12-06 10:59
这些是结合正则表达式的apache的rewrite的应用

你可以看这里:
http://w.yi.org/ftp/FAPM/apache/Apache2/zh/misc/rewriteguide.html

  1. Apache的mod_rewrite是提供了强大URL操作的杀手级的模块,可以实现几乎所有你梦想的URL操作类型,其代价是你必须接受其复杂性,因为mod_rewrite的主要障碍就是初学者不容易理解和运用,即使是Apache专家有时也会发掘出mod_rewrite的新用途。

  2. 换句话说:对mod_rewrite,或者是打退堂鼓永不再用,或者是喜欢它并一生受用。
复制代码


但是还没有找到什么捷径
作者: fz-L    时间: 2005-12-06 12:13

大概看了一下,确实理解起来恼火,看样子一下子是搞不定了。

不过还是烦请讲一下,这个rewrite的运行过程或者原理吧:

那么
RewriteEngine  on

RewriteRule    ^/$  http://www.abc.com/abc/bcd/index.asp  [P]

这段代码到底怎么来运用呢;

比如我有了这个虚机
<VirtualHost 218.168.1.1>                                       
    ServerAdmin webmaster@.example.com
    DocumentRoot d:/wwwroot/
    ServerName example.com
       ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
</VirtualHost>

然后可以怎么来实现 在浏览器上输入www.123.com  来隐藏转发到 http://www.abc.com/abc/bcd/index.asp
作者: HonestQiao    时间: 2005-12-06 12:14

  1. <VirtualHost 218.168.1.1>                                       
  2.     ServerAdmin webmaster@.example.com
  3.     DocumentRoot d:/wwwroot/
  4.     ServerName example.com
  5. RewriteEngine  on

  6. RewriteRule    ^/$  http://www.abc.com/abc/bcd/index.asp
  7.        ErrorLog logs/example.com-error_log
  8.     CustomLog logs/example.com-access_log common
  9. </VirtualHost>
复制代码

作者: fz-L    时间: 2005-12-06 18:17

这样就行了呀


那同理如果我要使 www.556677.com  隐藏转发到 www.microsoft.com/blog/index.asp
那么我就只改成下面这个了吧:

<VirtualHost 218.168.1.1>                                       
    ServerAdmin webmaster556677.com
    DocumentRoot d:/wwwroot/
    ServerName 556677.com
RewriteEngine  on
RewriteRule    ^/$  http://www.microsoft.com/blog/index.asp
       ErrorLog logs/556677.com-error_log
    CustomLog logs/556677.com-access_log common
</VirtualHost>

不好意思,先学点理论的,暂时还没有实验环境了。
作者: abel    时间: 2005-12-06 21:10
"隐藏转发" ? 再怎樣你都很難隐藏, 除非用 socket 或 proxy rewrite ,
不然 apache rewrite module 回應的都是 http code 302 而以
作者: fz-L    时间: 2005-12-06 22:08
真感谢老大都跑这边来回答我的问题了呢,那我就来学习下怎么使用cgi来完成这玩意了
作者: HonestQiao    时间: 2005-12-07 08:38
原帖由 fz-L 于 2005-12-6 22:08 发表
真感谢老大都跑这边来回答我的问题了呢,那我就来学习下怎么使用cgi来完成这玩意了



用CGI可以做到,但是会浪费服务器很多资源去请求信息




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2