.htaccess重定向删除某些字符串

时间:2016-02-25 18:15:30

标签: regex apache .htaccess

我有一个从以下任何一个加载index.php的框架:

ch

因为控制器“索引”存在,如果找不到任何功能,则加载索引。 与其他子页面相同:

website.com
website.com/index
website.com/index/
website.com/index/index
website.com/index/other
website.com/index/some/page/that/not/exists

那么,.htaccess可以检查url是否包含任何“/ index”或“index”并删除之后的所有内容? 我还需要在url的末尾强制不使用尾部斜杠。

我想要的结果:

website.com/realpage/
website.com/realpage/index
website.com/realpage/index/some/page/that/not/exists

谢谢!

@Rafael Saraiva 我试过这个:     RewriteRule ^(。*)/ index $ $ 1 [L]

现在告诉我404:

website.com/index                           -> website.com
website.com/index/                          -> website.com
website.com/index/index                     -> website.com
website.com/index/other                     -> website.com
website.com/index/some/page/that/not/exists -> website.com

website.com/realpage/                                -> website.com/realpage
website.com/realpage/index                           -> website.com/realpage
website.com/realpage/index/some/page/that/not/exists -> website.com/realpage

正确,这些页面不存在。但仍然显示主页:

website.com/index/index
website.com/index/other
website.com/index/some/page/that/not/exists

我想在这里重定向到“website.com”。

1 个答案:

答案 0 :(得分:0)

排除特定语法的通用正则表达式为:

(.*)index(.*)\/index

要测试正则表达式使用this site.要进一步检测其是否为有效网址,您需要使用不同的正则表达式。