htaccess中的这种静默重定向:
RewriteCond %{QUERY_STRING} ^pic_id=(\d+)$ [NC]
RewriteRule ^album_showpage\.php$ /gallery/image_page.php?image_id=%1 [L]
重定向一个看起来像的网址:
example.com/album_showpage.php?pic_id=1906
为:
example.com/gallery/image_page.php?image_id=1906
效果很好。但是,当URL具有如下参数时:
album_showpage.php?pic_id=1906&mode=prev
或
album_showpage.php?pic_id=1906&mode=next
重定向无法正常工作。
问题:如何在pic_id = 1906之后剪切任何参数
谢谢
答案 0 :(得分:1)
您需要匹配查询字符串的其余部分。
RewriteCond %{QUERY_STRING} ^pic_id=(\d+)(&.*)?$ [NC]
RewriteRule ^album_showpage\.php$ /gallery/image_page.php?image_id=%1%2 [L]
如果您不希望mode=prev
内容包含在规则的目标中,那么您只需删除$
而不是尝试匹配它:< / p>
RewriteCond %{QUERY_STRING} ^pic_id=(\d+) [NC]
RewriteRule ^album_showpage\.php$ /gallery/image_page.php?image_id=%1 [L]