我已为我的网站写了一条重写规则,如下所示;
RewriteEngine on
DirectoryIndex index.html index.php
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^([^.php].+) /details.php?name=$0
当我尝试www.example.com/example时,它会被重定向到www.example.com/details.php?name=example。 但是我试图访问www.example.com/Example,但它失败了。
请告诉我如何摆脱这个问题?
答案 0 :(得分:1)
您可以添加,
CheckSpelling on
摘要
CheckSpelling是一种很好的方式,可以获得更“宽容”的网站体验并减轻错误日志的负担,因为它可以用来自动更正文件请求。激活后,此“拼写检查程序”会将请求目录中的每个文档名称与请求的文档名称进行比较,而不考虑大小写,并且最多允许一个拼写错误(字符插入,遗漏,转置或错误字符)。
启用CheckSpelling的示例:CheckSpelling On.
答案 1 :(得分:0)
实际上,您的规则中出现了使用不正确的正则表达式的问题。
使用此规则:
RewriteEngine on
DirectoryIndex index.html index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /details.php?name=$1 [L,QSA]