.htaccess将所有子文件夹内容(带有和不带有斜杠)重定向到同一个子文件夹

时间:2015-08-18 04:03:17

标签: php apache .htaccess mod-rewrite redirect

我想重定向以下网址:

/gallery/image-1/
/gallery/image-1
/gallery/image-2/
/gallery/image-2

/gallery/,但它比起初看起来更难。这来自.htaccess:

RewriteEngine On
RewriteRule ^gallery/(.*) /gallery/ [R=301,L,NC]

所有网址最初都会重定向到/gallery/,但之后只会继续加载,因为显然此网址也位于^gallery/(.*)之下,因此会一直重定向到相同的网址。几秒钟后,浏览器会给我一条ERR_TOO_MANY_REDIRECTS消息。

如何编辑^gallery/(.*)语句,仅涵盖/gallery/网址后面包含某些内容的网址?

1 个答案:

答案 0 :(得分:1)

您应该在正则表达式中使用.+而不是.*,以确保在URI为/gallery/时停止重定向:

RewriteEngine On

RewriteRule ^(gallery)/.+$ /$1/ [R=301,L,NC]