Htaccess区分大小写重写条件问题

时间:2014-11-12 05:45:33

标签: php .htaccess mod-rewrite url-rewriting

我已为我的网站写了一条重写规则,如下所示;

 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,但它失败了。

请告诉我如何摆脱这个问题?

2 个答案:

答案 0 :(得分:1)

您可以添加,

CheckSpelling on

摘要

CheckSpelling是一种很好的方式,可以获得更“宽容”的网站体验并减轻错误日志的负担,因为它可以用来自动更正文件请求。激活后,此“拼写检查程序”会将请求目录中的每个文档名称与请求的文档名称进行比较,而不考虑大小写,并且最多允许一个拼写错误(字符插入,遗漏,转置或错误字符)。

启用CheckSpelling的示例CheckSpelling On.

Reference Liink

答案 1 :(得分:0)

实际上,您的规则中出现了使用不正确的正则表达式的问题。

使用此规则:

RewriteEngine on
DirectoryIndex index.html index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /details.php?name=$1 [L,QSA]