Apache重写URL:删除最后一个反斜杠(包括)和最后一个点之间的文本

时间:2014-02-05 12:23:29

标签: regex apache .htaccess mod-rewrite

我正在尝试转换像:

这样的链接

http://domain.com/images/67/ajjk3jj/7fdbf3a6a338ae5032ec2d1f08a2670f_81acc0dfd24507aa74b1de52767edca7/image.jpg

在链接中: http://domain.com/images/67/ajjk3jj/7fdbf3a6a338ae5032ec2d1f08a2670f_81acc0dfd24507aa74b1de52767edca7.jpg

所以我想删除原始链接中的文本“/ image”。 “图像”文字各不相同

我做了类似但不起作用的事情。我只需要在图片链接中显示原始文件名,但要将它们存储在生成名称的文件中。

RewriteEngine On
RewriteRule ^/(.*?)\/(?!.*\/)(.*?)\.(?!.*\.)(.*?)/$ /$1.$3 [L]

使用php preg_replace测试常规表达式并且它可以正常工作,但是我在apache中遇到404错误。

我想将htaccess文件放在uploads文件夹的根目录中。

如果我手动删除链接中的文本,则会产生良好的图像,因此唯一的问题是htaccess代码。

LATER EDIT: 如果我做了类似这样的工作,那么modrewrite模块不是问题:

RewriteRule ^images/67/ajjk3jj/7fdbf3a6a338ae5032ec2d1f08a2670f_81acc0dfd24507aa74b1de52767edca7/image.jpg$ images/67/ajjk3jj/7fdbf3a6a338ae5032ec2d1f08a2670f_81acc0dfd24507aa74b1de52767edca7.jpg

jpg扩展不固定,可以是任何一种图像

1 个答案:

答案 0 :(得分:0)

您可以使用此规则:

RewriteEngine On

RewriteRule ^(.+?)/[^/.]+(\.jpg)/$ /$1$2 [L,NC,R]