我有一个重写网址的问题。
我要这个 :
http://www.foo.com/test.php?u=s1&id=12345&img=12
至
http://app.foo.com/12345-s1-12.test
第一个参数u是一个字符串,参数id和img是整数。
我从这样的事情开始:
RewriteCond %{REQUEST_URI} ^/test.php?u=(.*)&id=(.*)&img=(.*)/ [NC]
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]
谢谢 :)
编辑:
仍然无法正常工作,但是我已经接近了!
RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]
现在它给我那个链接:
http://app.foo.com/12345-s1-12.test?u=s1&id=12345&img=12
代替 :
http://app.foo.com/12345-s1-12.test
:(
最佳答案
解决了!
RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test? [R=301,L]
在RewriteRule的末尾放置
?
会删除以前的查询字符串信息。
关于apache - 具有参数的URL的RewriteCond,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234005/