我最近从 IIS 切换到 Apache,不幸的是我的一些链接有大小写问题。我见过很多人谈论如何将 url 重写为全部小写或全部大写,但我需要一些东西来使 Apache 不区分大小写。这对.htaccess 可行吗?
问问题
33266 次
2 回答
13
添加
CheckSpelling on
.htaccess
启用 RewriteEngine 后当然到您的文件
所以最终的代码将是
RewriteEngine on
CheckSpelling on
我想这是最好和最安全的方法。
不要忘记改变
AllowOverride none
至
AllowOverride All
在您的httpd.conf
文件中,以允许 .htaccess 文件正常工作。
于 2013-10-11T04:43:45.187 回答
1
如果CheckSpelling
不适合您并且您正在使用 PHP,您可以在 404 页面中添加 PHP 重定向以重定向到 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 是否包含大写字母,如果是,它会重定向到相同的页面,但使用小写字母。
于 2019-02-05T13:53:40.270 回答