将规则从目录重写到同一域中的子目录

时间:2015-02-10 15:59:42

标签: regex apache url mod-rewrite

我有以下网址:

http://example.com/media/image.png

这应该重定向到:

http://example.com/media/images/image.png

此规则仅用于重定向媒体文件夹中的图像。

但规则应 NOT 重定向此类网址:

http://example.com/some_folder/media/image.png

要:

http://example.com/media/images/image.png

它应该如何?

我尝试过这样的事情:

RewriteRule /media/(.*) /media/images/$1 [R,L]

但我没有取得好成绩。

1 个答案:

答案 0 :(得分:2)

您需要锚定您的表达式,否则它将匹配包含 /media/的任何网址,而不是使用media/启动

RewriteRule ^media/(.*) /media/images/$1 [R,L]

如果它只是图像,您可能需要考虑使表达更严格,例如:

RewriteRule ^media/(.+\.(jpe?g|gif|png)) /media/images/$1 [R,L]