我最近从IIS切换到Apache和unfortionately我的一些环节有资本的问题。我看到不少人在谈论如何重写URL是全部小写或全部大写,但我需要的东西,只是让Apache不区分大小写。这是可行的.htaccess的?
加
CheckSpelling on
当然到你的.htaccess
文件使RewriteEngine叙述后
所以最终代码会
RewriteEngine on
CheckSpelling on
我想这是最好的和最安全的方式。
AllowOverride none
AllowOverride All
您httpd.conf
文件中,允许.htaccess文件中正常工作。
如果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包含大写字母,如果是这样,它重定向到相同的页面,但用小写字母。