0

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

因此,我在 HTAcess 文件中为所有相关的 301 添加了 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 文件中的单个条目?

谢谢你的任何建议。

4

1 回答 1

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部分。只要?目标中没有 a ,重写引擎就会自动将查询字符串附加到末尾。

于 2013-09-09T08:25:17.317 回答