如何在.htaccess中规范化网址?

时间:2016-01-28 21:27:12

标签: regex apache .htaccess

我在LAMP堆栈上安装了Wordpress,如果我在http://example.com/abc/发帖,我希望将http://example.com/abc/def.html等网址重定向到http://example.com/abc/。 (请注意,此处由“def”占用的插槽应该没有任何斜杠;这意味着http://example.com/wp-content/下的内容应该不受阻碍。)

我尝试过的重写是:

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

据我所知,它说:“取两个斜线和它们之间的所有东西,不再匹配斜线,以.html结尾,然后重定向到第一个捕获的组。”但是,有了这些,我可以访问http://example.com/abc/,但尝试访问http://example.com/abc/def.html时获得404.

我应该怎么做才能实现所需的重定向行为?

谢谢,

1 个答案:

答案 0 :(得分:1)

尝试此规则:

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

使前导斜杠可选,因为.htaccess没有它并在第一次斜杠后调整部分。确保这是你的第一条规则。