我在我的网站上设置了以下网址重写规则
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处理的,如果这对任何人有兴趣或者在处理规则方面有任何不同吗?
答案 0 :(得分:1)
我认为你在这里犯的错误是使用*
量词。它的作用是捕获zero
或more
次出现的字符。
你的正则表达式:^([^/]*)\/?$
因为你使用了*
它会变得懒惰并且什么都不匹配。替换后渲染.html
。
您可以使用+
将正则表达式更改为贪婪。你的正则表达式将是^([^/]+)\/?$
。
在此demo通知中,由于延迟量词*
,即使空白也匹配。