将htaccess大写URL转换为小写

本教程将介绍将htaccess大写URL转换为小写的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

将htaccess大写URL转换为小写 教程 第1张

问题描述

网站上有文件夹,里面是带有一些大写字符的php文件。

示例:

现在这个URL已经存在多年了,并且在搜索引擎周围到处都是。这是产品经理的错误。

但我想解决此问题,我只需要小写URL。

这能解决我的问题吗?CheckSpelling OnCheckCaseOnly On(1)

和上述和:(2)

有什么不同

RewriteMap tolowercase int:tolower 
RewriteRule ^(.*)$ ${tolowercase:$1}

如果我使用(1),则我请求url的所有作品都是小写还是大写

如果我使用(2),我必须将文件夹中的所有文件重命名为小写。

-编辑-

当我使用RewriteRule时,如果url为大写,我将被转移到域根目录,如果我使用CheckSpellingCheckCaseOnly,则一切正常。

我使用this测试了,得到:

RewriteCond %{REQUEST_URI} [A-Z] 

RewriteRule (.*) ${tolowercase:$1} [R=301,L] 

-满足此规则,新URL为http://www.example.com/${tolowercase:products/BIT-Defendar.php}

我在httpd.conf中的设置:

<VirtualHost *:80>
 RewriteMap tolowercase int:tolower
</VirtualHost>

推荐答案

使用拼写检查和/或仅检查案例指令可能会导致意外结果,如底部here所述:

1, performance issues
2, some files might be skipped
3, some files might be misinterpreted

我认为让Apache为您进行更正是不明智的,因为您依赖Apache在每次查找时搜索目录和文件,而使用小写映射时,它会让您完全控制,并且只会创建严格的标准。

我建议您添加一个标志[R=301],它将通知搜索引擎这是新文件,您不会遇到任何与搜索引擎相关的问题:

RewriteMap tolowercase int:tolower 
RewriteRule ^(.*)$ ${tolowercase:$1} [R=301,L]

您必须重命名您的文件,因为它们将不再被识别,但是您可以编写一个简单的脚本来扫描所有文件,并将它们重命名为小写。

好了关于将htaccess大写URL转换为小写的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。