Apache 如何将固定文件夹名称重定向到另一个固定文件夹,而不管它被请求到哪里

Apache 如何将固定文件夹名称重定向到另一个固定文件夹,而不管它被请求到哪里,apache,mod-rewrite,redirect,url-rewriting,Apache,Mod Rewrite,Redirect,Url Rewriting,我了解我的web应用程序的当前情况: html文件将从{currentpath}/images请求图像/ 由于使用MVC,我的URL经常更改: domain.com/app/main/welcome/ 从主类中获取欢迎方法 在这种情况下,视图将从 domain.com/app/main/welcome/images/ 在任何情况下,如果脚本从它的images子文件夹中调用某些内容,我都需要将其重定向到一个固定文件夹,比如domain.com/app/images/ 到目前为止,我已经尝试过:

我了解我的web应用程序的当前情况:

html文件将从{currentpath}/images请求图像/

由于使用MVC,我的URL经常更改:

domain.com/app/main/welcome/
从主类中获取欢迎方法

在这种情况下,视图将从

domain.com/app/main/welcome/images/
在任何情况下,如果脚本从它的images子文件夹中调用某些内容,我都需要将其重定向到一个固定文件夹,比如domain.com/app/images/

到目前为止,我已经尝试过:

RewriteRule ^(.*)/app/(.*)/images/(.*)$ $1/app/images/$3 [R=301,L,QSA]
这不管用

我的意图是重定向:

domain.com/app/{anything}/images/ 

这是我在stackoverflow上的第一篇文章,通常我通过搜索直接找到所有答案,但在这篇文章上我不知道怎么做

顺便说一句,我知道我可以简单地用固定路径替换我所有视图上的所有视图,但由于将来可能会发生变化,这将是一种更加优雅的方式。

您可以尝试:

RewriteRule ^/?app/.+/images/(.*)$ /app/images/$1 [R=301,L,QSA]
您可能需要决定如何永久地使用URL,只需更改重定向以匹配,然后在后台更改其余的URL。您可能也想考虑别名:

。。。其中必须填写{currentpath}

Alias /app/{currentpath}/images /app/images
或别名匹配

AliasMatch ^/app/.+/images(.*) /app/images$1
然后在文件夹更改时更改最后一部分,也可以通过mod_alias永久重定向,尽管有点不同:

Redirect 301 /app/{currentpath}/images http://domain.com/app/images
还有一场比赛


请参阅:

您需要的规则是:

RewriteRule ^(app/)[^/]+/(images/.*)$ $1$2 [R=301,L,NC]

非常感谢你。两种解决方案都有效,但我仍然使用AliasMatch,因为它看起来更优雅。非常感谢你
RewriteRule ^(app/)[^/]+/(images/.*)$ $1$2 [R=301,L,NC]