关于 Rewriterule [P]的一个问题

关于 Rewriterule [P]的一个问题

小菜准备用mod_rewrite 实现"代理"+"动态转静态"
也就是说通过访问www.mysite.com 来访问 www.othersite.com
我想用RewriteRule ^/(.*)$ http://www.othersite.com/$1 [P]可以来实现吧
但是其中www.othersite.com中的有些页面有?=&……等对搜索引擎不友好的东西。
于是又加了一些RewriteRule来使其动态转静态如:RewriteRule ^(.*)-htm-(.*)$ $1.php?$2 之类的东西。
但是发现后面加的RewriteRule时而有用时而没用。
我想可能是这些规则可能和第一个规则有重复的地方而导致的。(个人猜测)因为我把第一个规则#了以后,后面的规则应用正常了。但是又有问题来了,就是由于程序不在我的服务器上,而我又只对页面进行重写,而页面又要调othersite上的程序或图片。导致这些页面的功能很多都不能用。
图片等知道后缀名的内容还好说,可以再添加规则。有些程序连是什么都不知道该怎么办呢?
各位大哥帮我想想吧。。
这个没有什么办法做到

你最好使用一个webcopy程序来处理。
谢谢你那么晚了

那我想再问一下,如果第一个规则不包括后缀为.html的文件的话那还可以实现吗?
我想应该可以吧,因为我后面加了几个.gif和.jpg的规则,那些动态转静态的页面就可以看到图片了。

可是正则表达式该怎么写呢?
好像说的不清楚

也就是说当这个规则 RewriteRule ^/(.*) http://www.othersite.com/$1 [P]
                     不包括 。html 的重写的时候就应该可以了。
               可是正则表达式该怎么写呢?
文档中对[P]有这样的描述:
This flag forces the substitution part to be internally sent as a proxy request and immediately (rewrite processing stops here) put through the proxy module.

是否可以把 RewriteRule ^/(.*) http://www.othersite.com/$1[P]规则的放到最后
动态参数,再加个[QSA]参数暂时解决可以不
你可以试试
非常感谢

正在试,完了来回帖
页面是别人的,你仅仅通过mod_rewrite是无法修改页面的内容,把动态网址替换为静态的。

而蜘蛛爬过来,也基本上是通过你的动态地址爬的。

我说使用webcopy,你就可以让蜘蛛爬的页面都是静态网址了。
谢谢leaner
但是你的方法还是不起作用啊。

我想我的方法应该是可行的,只怪当初书没读好,不精通正则表达式。看的我头都大了。

不知道你是否可以想一个规则来使“XXXX.html”不在此 RewriteRule ^/(.*) http://www.othersite.com/$1 [P] 规则中进行重写。

这样就不回和的“动态转静态”的规则矛盾了


QUOTE:
原帖由 HonestQiao 于 2006-12-23 10:16 发表
页面是别人的,你仅仅通过mod_rewrite是无法修改页面的内容,把动态网址替换为静态的。

而蜘蛛爬过来,也基本上是通过你的动态地址爬的。

我说使用webcopy,你就可以让蜘蛛爬的页面都是静态网址了。

你说的东西,我绝对会去尝试的。

但是现在,我想这些东西会分散我对现在的rewrite的学习。所以,我想通过我现在想到的方法来解决。

刚刚学习这个东西,知道他的强大,所以想尝试,仅仅是以学习的目的来的。而且我认为我们小菜们,只是想通过这样一个过程来达到对所用的东西的深入了解。(文档太抽象了,没有操作看文档简直是个折磨,但是我还是痛并快乐着)

谢谢HonestQiao和CU的大虾们,没有你们的指导我们也许很多问题永远解决不了。也许因此而放弃。

哇说太多了