【问题标题】:.htaccess or other URL Case Sensitive.htaccess 或其他 URL 区分大小写
【发布时间】:2010-02-16 05:01:56
【问题描述】:

我的服务器区分大小写,我想将其设置为不区分大小写。
我的意思的例子是
假设我上传 Fruit.php
那么去这个文件是行不通的:
www.website.com/fruit.php
但是这个会:
www.website.com/Fruit.php

有没有办法让 Fruit.php 和 fruit.php 工作?也与目录。 IE:
/Script/script.php
/script/Script.php

【问题讨论】:

  • 请接受您之前问题的正确答案,这将为这些人提供一点声望奖励,并让其他人知道问题已解决。

标签: .htaccess case case-sensitive


【解决方案1】:

您需要使用 mod_speling (sic) apache 模块:

http://httpd.apache.org/docs/1.3/mod/mod_speling.html

在 .htaccess 中

<IfModule mod_speling.c>
  CheckCaseOnly On
  CheckSpelling On
</IfModule>

CheckSpelling 操作使 Apache 执行更复杂的工作来查找匹配项,例如纠正常见的拼写错误

【讨论】:

  • @Creator:mod_speling 默认情况下通常不启用,据报道 plus 性能不错。
  • 是的,我使用它并面临加载时间的增加。有什么方法可以提高性能吗?
【解决方案2】:

区分大小写取决于文件系统,而不是 Apache。但是,有一个部分解决方案。 mod_rewrite 可以将所有内容强制转换为小写(或大写),如下所示:

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

参考:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritemap

不幸的是,这仅在您的所有文件都是小写的情况下才有效,而您指定混合大小写的文件名 (Fruit.php)。您是否愿意将项目中的所有文件重命名为小写?

【讨论】:

    【解决方案3】:

    UNIX 服务器区分大小写 - 它们区分文件名和文件夹名中的大写字母和小写字母。因此,如果您将网站从 Windows 移动到 UNIX 服务器(例如,当您更改网络主机时),您可能会遇到一定数量的“找不到页面”错误(404 错误),因为目录和其他网站链接到您的有时会弄错大小写(通常以大写形式写文件夹名称的第一个字母等)。这个基于 javascript 的自定义 404 错误页面通过将 URL 转换为小写来解决问题。

    你可以从http://www.forbrugerportalen.dk/sider/404casescript.js获取脚本

    编码愉快!!!!!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-01
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多