基于query_string的特定.htaccess重定向

时间:2012-05-14 14:16:10

标签: .htaccess

我需要这个逻辑才能工作:

我想重写此字符串供用户查看

http://mysite.com/index.php?cl=mykeystringhttp://mysite.com/otherkey/

http://mysite.com/index.php?myvar=test&cl=mykeystring&mysecondvar=morevaluehttp://mysite.com/otherkey/myvar=test&mysecondvar=morevalue

但是当写http://mysite.com/otherkey/时,加载 http://mysite.com/index.php?cl=mykeystring,但不会进行重定向。

有可能吗?不可能在代码中更改任何内容,但只能更改.htaccess

这个逻辑几乎可以通过以下代码实现:

RewriteCond %{QUERY_STRING} ^(.*?)cl=mykeystring(.*?)$ [NC]
RewriteRule ^index.php$ /otherkey/%1%2? [R,L]

RewriteRule ^otherkey/(.*?)$ /index.php?cl=mykeystring&$1

我在首次重写规则中获得了一些不需要的放大符号。任何解决方案?

1 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

RewriteCond %{QUERY_STRING} cl=mykeystring [NC]
RewriteRule ^index.php /otherkey/ [QSA]

文档:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html