Apache htaccess重定向目录和一些内容

时间:2013-01-16 19:47:40

标签: regex apache .htaccess redirect

我目前正在尝试让Apache将对目录或其内容的任何请求重定向到单个文件。相关目录是/press。这恰好包含网站上其他页面正在使用的多个图像。我想将/press/press/*重定向到/press-materials/,但允许完成任何图像请求(例如/press/logo.png)。我尝试了一些解决方案并获得重定向的一个方面,但它不符合其他标准。

对于Apache和REGEX(我有意识地需要处理的东西),我是新手,所以这可能是一个简单的修复。

这是htaccess调用重定向/按到/ press-materials但/ press / filename返回404错误。

RewriteRule ^press/$ /press-materials/ [R,L]

经过6个小时,我已经到了。任何帮助都将非常感激。

1 个答案:

答案 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