很难的Rewrite的规则问题

很难的Rewrite的规则问题

http://www.example.com/swf/test.swf?member_name=finalbsd&album_id=24
重写成:
http://www.example.com/swf/finalbsd/24/test.swf弄了半天搞不定

楼主可以告诉你这么应用的目的是什么么?

简单来说吧,如果页面里面就是这个网址,你就算重写,页面的也不会改变。
无非是在你点了连接之后,会发生一次跳变到新的网址,但是这个动态网址是没有任何办法隐藏的。


QUOTE:
原帖由 HonestQiao 于 2007-1-5 13:10 发表
楼主可以告诉你这么应用的目的是什么么?

简单来说吧,如果页面里面就是这个网址,你就算重写,页面的也不会改变。
无非是在你点了连接之后,会发生一次跳变到新的网址,但是这个动态网址是没有任何办法隐藏的。

就是为了改变URL地址,增加用户体验:
http://www.example.com/swf/test.swf?member_name=finalbsd&album_id=24--> http://www.example.com/swf/finalbsd/24/test.swf



QUOTE:
原帖由 HonestQiao 于 2007-1-5 13:10 发表
楼主可以告诉你这么应用的目的是什么么?

简单来说吧,如果页面里面就是这个网址,你就算重写,页面的也不会改变。
无非是在你点了连接之后,会发生一次跳变到新的网址,但是这个动态网址是没有任何办法隐藏的。

怀疑小乔同学不懂rewrite,

RewriteEngine on
RewriteBase /swf
RewriteRule ^(.*)/(.*)/(.*)\.swf$ /swf/$3.swf?member_name=$1&album_id=$2
这个rewrite规则应该不算难写。


QUOTE:
原帖由 ttvast 于 2007-1-5 18:51 发表


怀疑小乔同学不懂rewrite,

RewriteEngine on
RewriteBase /swf
RewriteRule ^(.*)/(.*)/(.*)\.swf$ /swf/$3.swf?member_name=$1&album_id=$2
这个rewrite规则应该不算难写。



我问了楼主很多回,楼主所需要的,和你提供的是正好相反的。
他要把动态的rewrite到静态的。
而不是你现在的静态网址rewrite到动态的。

我给很多客户做专业的重写定制工作。


QUOTE:
原帖由 HonestQiao 于 2007-1-5 22:05 发表




我问了楼主很多回,楼主所需要的,和你提供的是正好相反的。
他要把动态的rewrite到静态的。
而不是你现在的静态网址rewrite到动态的。

我给很多客户做专业的重写定制工作。

小乔应该是rewrite的专家来的。

楼主说反了。
楼主的想发,可能可已有一个办法来实现,但是需要迂回的来处理。

通常情况之下,rewriterule直接处理的话,是针对URL而不是URI,URL带有查询字符串,而URL是不带有的。

你可以看看:http://w.yi.org/ftp/FAPM/apache/Apache2/zh/misc/rewriteguide.html
的扩展的重定向,可以使用程序来辅助处理,这个注意不错。
刚才想了一想,还有更加简单的方法。

你先全部重写到redirect.php或者redirect.pl,在这个里面也可以转向,这就简单多了,小儿科啦。
搞定了,^_^


RewriteCond  %{THE_REQUEST} ^[A-Z]{3,9}\ /swf/([^&]+)\.swf\?member_name=([^&]+)&album_id=([^&]+)\ HTTP/
RewriteRule     ^/swf/([^&]+)\.swf$ http://www.example.com/swf/%2/%3/%1.swf? [R]