如何使用.htaccess使Apache不区分大小写?

如何使用.htaccess使Apache不区分大小写?,apache,.htaccess,case-insensitive,capitalization,Apache,.htaccess,Case Insensitive,Capitalization,我最近从IIS切换到Apache,我的一些链接出现了大写问题。我见过不少人谈论如何将URL重写为全小写或全大写,但我需要一些东西使Apache不区分大小写。使用.htaccess是否可行?添加 CheckSpelling on 到您的.htaccess文件 当然,在启用引擎之后 所以最后的代码是 RewriteEngine on CheckSpelling on 我想这是最好最安全的方法 别忘了换衣服 到 在httpd.conf文件中,允许.htaccess文件正常工作。如果CheckSpe

我最近从IIS切换到Apache,我的一些链接出现了大写问题。我见过不少人谈论如何将URL重写为全小写或全大写,但我需要一些东西使Apache不区分大小写。使用.htaccess是否可行?

添加

CheckSpelling on
到您的
.htaccess
文件 当然,在启用引擎之后

所以最后的代码是

RewriteEngine on
CheckSpelling on
我想这是最好最安全的方法

别忘了换衣服 到
httpd.conf
文件中,允许.htaccess文件正常工作。

如果
CheckSpelling
不适合您,并且您正在使用PHP,您可以在404页面中添加一个PHP重定向,以重定向到URL的小写版本。首先,如果尚未这样做,请将以下代码添加到.htaccess文件中(如果需要,可以调用404.php以外的文件,但必须是php文件):

然后在404.php的开头添加以下代码(如果您使用的是HTTPS,请将第二行的
http://
更改为
HTTPS://
):


这段代码使用一个简单的正则表达式来检查请求的URI是否包含大写字母,如果包含,则会重定向到同一页,但包含小写字母。

每当我在上添加
CheckSpelling时,每页上都会出现500个内部服务器错误,这对我来说非常有用。尝试删除.htaccess文件中除“在检查拼写时重写引擎”之外的所有内容,并确保您允许覆盖httpd.conf文件中的所有内容我已删除所有内容。我唯一没有做的就是httpd.conf文件,因为我不知道如何访问它。我正在与dreamhost共享主机。有没有办法访问该文件,或者我必须找到另一种方法?那么,试着联系他们,看看他们是否允许使用.htaccess,并询问他们是否加载了mod_rewrite。如果其他人看到这一点,你也需要启用mod_speling模块。你试过了吗?我认为这不能用
.htaccess
;这不符合这个文件的目的,但我可能错了。
AllowOverride none
AllowOverride All
ErrorDocument 404 /404.php
if(preg_match("/[A-Z]/", $_SERVER["REQUEST_URI"])){
    header("location:http://" . $_SERVER["HTTP_HOST"] . strtolower($_SERVER["REQUEST_URI"]));
    exit();
}