我将如何让Apache区分大小写使用的.htaccess?

问题描述 投票:16回答:2

我最近从IIS切换到Apache和unfortionately我的一些环节有资本的问题。我看到不少人在谈论如何重写URL是全部小写或全部大写,但我需要的东西,只是让Apache不区分大小写。这是可行的.htaccess的?

apache .htaccess case-insensitive capitalization
2个回答
13
投票

CheckSpelling on

当然到你的.htaccess文件使RewriteEngine叙述后

所以最终代码会

RewriteEngine on
CheckSpelling on

我想这是最好的和最安全的方式。

dont forget to change

AllowOverride none

to

AllowOverride All

httpd.conf文件中,允许.htaccess文件中正常工作。


0
投票

如果CheckSpelling工作不适合你,你正在使用PHP,你可以添加一个PHP在你的404重定向页面重定向到URL的小写版本。首先,如果你还没有这样做的话,下面的代码添加到您的.htaccess文件(可以调用该文件别的东西比404.php,如果你想要的,但它必须是一个PHP文件):

ErrorDocument 404 /404.php

然后在404.php的开头添加以下代码(如果您正在使用HTTPS,改变http://在第二行https://):

if(preg_match("/[A-Z]/", $_SERVER["REQUEST_URI"])){
    header("location:http://" . $_SERVER["HTTP_HOST"] . strtolower($_SERVER["REQUEST_URI"]));
    exit();
}

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

© www.soinside.com 2019 - 2024. All rights reserved.