URL重写规则不处理主页/默认页面

时间:2016-04-06 23:32:19

标签: regex .htaccess url-rewriting

我在我的网站上设置了以下网址重写规则

RewriteCond %{REQUEST_URI} !^/(img|js|css|fonts)/
RewriteCond %{REQUEST_URI} !.html$
RewriteRule ^([^/]*)\/?$ $1.html [NC,L]

它工作得非常好,但我似乎无法加载网站的主页,除非明确列出

www.domainname.com/&除非我明确写出www.domainname.com,否则www.domainname.com/index无效。

如果没有列出特定页面,我的模式中是否缺少允许提供默认文档的内容?

这是由Helicon Ape处理的,如果这对任何人有兴趣或者在处理规则方面有任何不同吗?

1 个答案:

答案 0 :(得分:1)

我认为你在这里犯的错误是使用*量词。它的作用是捕获zeromore次出现的字符。

你的正则表达式:^([^/]*)\/?$因为你使用了*它会变得懒惰并且什么都不匹配。替换后渲染.html

您可以使用+将正则表达式更改为贪婪。你的正则表达式将是^([^/]+)\/?$

在此demo通知中,由于延迟量词*,即使空白也匹配。