重定向带问号的网址

时间:2012-03-22 18:17:58

标签: apache .htaccess

我想重定向: http://www.mydomain.com/myfolder/?5/my-page 至: http://www.mydomain.com/myfolder/?5/page

.htaccess中的简单重定向似乎不起作用:

Redirect 301 /myfolder/?5/my-page http://www.mydomain.com/myfolder/?5/page

我四处搜寻,发现一定是因为问号。 经过一番搜索后我尝试了这个:

 RewriteCond %{QUERY_STRING} ^my-page
 RewriteRule ^my-page http://www.mydomain.com/myfolder/?5/page [L,R=301]

哪个完全不起作用。我想我自己无法解决这个问题,并想问其他人是否可以带领我走上更好的道路?

提前致谢。

2 个答案:

答案 0 :(得分:1)

查询字符串是之后的所有?所以在这个例子中这将是5/my-page而不是my-page,所以与你的URI匹配的重写指令将是:

RewriteEngine On
RewriteBase   /
RewriteCond %{QUERY_STRING} ^5/my-page$
RewriteRule ^myfolder/$ myfolder/?5/page? [L,R=301]

您需要替换模式中的?,因为引擎会在没有此情况的情况下附加现有的查询字符串。

答案 1 :(得分:0)

以下是答案 - Removing trailing question mark with htaccess

从这样重定向:

http://site.com/index.php?blaaa=123&idd=999

http://site.com/page/