我目前正在尝试让Apache将对目录或其内容的任何请求重定向到单个文件。相关目录是/press
。这恰好包含网站上其他页面正在使用的多个图像。我想将/press
和/press/*
重定向到/press-materials/
,但允许完成任何图像请求(例如/press/logo.png)。我尝试了一些解决方案并获得重定向的一个方面,但它不符合其他标准。
对于Apache和REGEX(我有意识地需要处理的东西),我是新手,所以这可能是一个简单的修复。
这是htaccess调用重定向/按到/ press-materials但/ press / filename返回404错误。
RewriteRule ^press/$ /press-materials/ [R,L]
经过6个小时,我已经到了。任何帮助都将非常感激。
答案 0 :(得分:2)
假设您要允许对/press
中实际存在的文件的所有请求(如/press/logo.png
):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^press/.* /press-materials/ [R,L]
仅当请求/press
中没有现有文件时,才会执行重写。
另一种解决方案,仅允许特定文件类型(例如,仅*.jpg
,*.png
,*.gif
),并且仅当它们存在于/press
目录中但不存在于RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_URI} !^/press/[^\/]+\.(png|jpg|gif)$
RewriteRule ^press/.* /press-materials/ [R,L]
目录中时子目录:
{{1}}
有关重写条件的更多信息,请参见here。