【问题标题】:htaccess redirect part of filenamehtaccess 重定向文件名的一部分
【发布时间】:2014-04-17 19:48:20
【问题描述】:

我已经阅读了几页关于在 htaccess 中使用正则表达式重定向文件和 url 的页面,但对于我想要实现的目标却一无所获。

我们有旧文件名,例如 /images/imagename-70-70.jpg - 这些已被 100x100 版本替换,因此文件名现在是 /images/imagename-100-100.jpg

对于旧文件名的请求,我们的日志文件中出现很多错误。有没有办法根据拆分文件名进行重定向?

例如:

/images/$1-70-70.jpg should redirect to /images/$1-100-100.jpg

感谢您的帮助。

【问题讨论】:

  • 当您转到 120x120 图像时会发生什么?你还会再起错名字吗?除非有充分的理由在名称中包含图像大小部分,否则请考虑减小大小。同样,它们是否总是 JPEG?您可能只想拥有/images/imagename,并在.htaccess 中添加-100-100.jpg 部分。只是一个想法......

标签: regex apache .htaccess mod-rewrite redirect


【解决方案1】:

这应该可行:

RewriteEngine on

RewriteRule ^images/(\w+)-70-70\.jpg$ images/$1-100-100.jpg [L,R=301]  

【讨论】:

  • 谢谢 - 这似乎是最接近的 - 规范略有变化......我需要从 /images/xxx 重定向到 /photos/xxx - 我更改了上面的路径,但它正在重定向到根路径。例如www.website.com/var/www/vhosts/website.com/httpdocs/photos/xxx 有什么想法吗??
【解决方案2】:

将此作为您的第一条规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+images/(.+?)-70-70\.(\S+) [NC]
RewriteRule ^ /photos/%1-100-100.%2 [L,R=301]

【讨论】:

  • 谢谢,但重定向似乎省略了文件名?我得到website.com/-100-100
  • 那是我的一个错误。现在已更正,您可以再试一次吗?
  • 对不起,我没有重新加载帖子!现在将尝试。我还应该指定我需要从 /images/ 文件夹重定向到 /photos 文件夹(所以 website.com/images/000433-70-70.jpg 应该重定向到 website.com/photos/000433-100-100.jpg。非常感谢您的帮助!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多