HTAccess 301重定向带有通配符的URL参数?

时间:2013-09-09 07:18:09

标签: .htaccess redirect rewrite querystringparameter

我已经接管了一个网站并重写了画廊设施,使用Fancy灯箱插件而不是每张图片的单独页面,共42页,即画廊现在只包含一个网页。

因此,我为所有相关的301s添加了HTAcess文件的行,42次:(:

RewriteCond %{HTTP_HOST}  ^www\.mydomain\.com$ [NC]
RewriteCond %{QUERY_STRING}  ^view=14$ [NC]
RewriteRule ^viewGallery\.php$ http://www.mydomain.com/gallery/?view=14 [R=301,NE,NC,L]

有没有办法使用通配符来捕获图库编号,在本例中为14,并将该部分缩短为HTAccess文件中的单个条目?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteCond %{HTTP_HOST}  ^www\.mydomain\.com$ [NC]
RewriteCond %{QUERY_STRING}  ^view=([0-9]+)$ [NC]
RewriteRule ^viewGallery\.php$ http://www.mydomain.com/gallery/?view=%1 [R=301,NE,NC,L]

除了您更改查询字符串的正则表达式以捕获ID之外,这基本上就是您所拥有的,然后您可以使用规则目标中的%1对其进行反向引用。

但是,更简单的方法是:

RewriteCond %{HTTP_HOST}  ^www\.mydomain\.com$ [NC]
RewriteCond %{QUERY_STRING}  ^view=([0-9]+)$ [NC]
RewriteRule ^viewGallery\.php$ http://www.mydomain.com/gallery/ [R=301,NE,NC,L]

完全删除?view=%1部分。只要目标中没有?,重写引擎就会自动将查询字符串附加到结尾。