重定向所有子文件夹但保持文件可访问?

时间:2014-10-15 11:39:38

标签: regex apache .htaccess preg-match

我有一个公共文件夹的网站,我在其中托管了一些图片。

让我们说根文件夹是" public"。 在这个文件夹中,我有另一个名为" images"的文件夹。 在名为" images"的文件夹中我有很多名为" 1" ..." 92345678"的文件夹。

我想创建一个htaccess规则,将用户从文件夹中重定向:

www.website.com/public/images/
www.website.com/public/images/1
www.website.com/public/images/2
...
www.website.com/public/images/10000001

www.website.com/public/

请给我一个适用于所有子文件夹的选项。 (递归)

我也想只重定向文件夹,图片网址应该有效!

3 个答案:

答案 0 :(得分:2)

您可以在 /public/images/.htaccess 文件中使用此规则:

RewriteEngine On
RewriteBase /public/images/

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . /public/ [L,R=302]

答案 1 :(得分:1)

您必须启用重写引擎,然后使用规则从以/public/image开头的URI重定向到/public

RewriteEngine on
RewriteRule ^/public/images.* /public

答案 2 :(得分:0)

我找到了答案:

#redirect all subfolders to root and exclude images
RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^images/(.*)$ / [R=301,NC,L]

感谢 Mark Shevchenko anubhava 的帮助!