使用htaccess重定向带有问号的301网址

时间:2017-04-16 02:46:02

标签: apache .htaccess redirect

我有这个网站:

www.exampale.com/index.php?action=gallery&tag_id=X

X是介于0到50,000之间的数字。

我想通过htaccess对这个网站进行301重复:

www.exampale.com/gallery/?tags=X

本网站的内容相同:

www.exampale.com/?action=gallery&img_id=X (不含index.php)

到网站:

www.exampale.com/image/view/X

我试试这段代码:

RewriteEngine On
RewriteRule ^index.php?action=gallery&tag_id=([0-9]+)$ /gallery/?tags=$1 [R=301,NC]
RewriteRule ^?action=gallery&img_id=([0-9]+)$ /image/view/$1 [R=301,NC]

但它不起作用,当我尝试没有"?"代码运作良好。

有人可以帮助我吗?我必须在htaccess文件中编写什么代码?

感谢您的帮助: - )

1 个答案:

答案 0 :(得分:0)

之后的QueryString url部分不是RewriteRule模式中匹配的一部分。您需要使用 RewriteCond

匹配againg %{QUERY_STRING} 变量
RewriteEngine on

#index.php?action=gallery&tag_id=123 =>/gallery/?tags=123
RewriteCond %{QUERY_STRING} ^action=gallery&tag_id=([0-9]+)$ [NC]
RewriteRule ^index\.php$ http://example.com/gallery/?tags=%1 [NC,L,R]