htaccess Uppercase URL to lowercase(将htaccess大写URL转换为小写)
问题描述
网站上有products/文件夹,里面是带有一些大写字符的php文件。
示例:www.example.com/products/BIT-Defendar.php 现在这个URL已经存在多年了,并且在搜索引擎周围到处都是。这是产品经理的错误。 但我想解决此问题,我只需要小写URL。 这能解决我的问题吗? 和上述和:(2) 如果我使用(1),则我请求url的所有作品都是小写还是大写(但我会有搜索引擎问题吗?) 如果我使用(2),我必须将products/文件夹中的所有文件重命名为小写。 -编辑- 当我使用 我使用this测试了,得到: -满足此条件CheckSpelling On
CheckCaseOnly On
(1)RewriteMap tolowercase int:tolower
RewriteRule ^(.*)$ ${tolowercase:$1}
RewriteRule
时,如果url为大写,我将被转移到域根目录,如果我使用CheckSpelling
和CheckCaseOnly
,则一切正常。RewriteCond %{REQUEST_URI} [A-Z]
-满足此规则,新URL为http://www.example.com/${tolowercase:products/BIT-Defendar.php}RewriteRule (.*) ${tolowercase:$1} [R=301,L]
-由于RewriteRule选项中的R,测试已停止。将进行重定向,状态代码为301
我在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转换为小写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将htaccess大写URL转换为小写
基础教程推荐
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01