【问题标题】:URL consist lower and upper case characters causes 404 error instead of correcting the character caseURL 包含大小写字符导致 404 错误,而不是更正字符大小写
【发布时间】:2014-04-03 19:12:09
【问题描述】:

我猜这是 .htaccess 相关的问题,而不是 php。

这是我的问题,我有几个包含大小写字符的 URL。

如果意外输入了错误的字符,那么这将导致 404。我的问题是,如何将错误输入的字符更正为正确的大小写,例如 mysite.com/myfolder/something.html 中的 mysite.com/MyFolder/something.html

我想这必须是使用 .htaccess 重写规则的某种方式,但我不是这个主题的特别专业人士。

我不得不对我的问题进行编辑,因为我认为它被误解了。

所以问题来了,上面提到的 URL 在我的一个竞争对手网站的地址栏中以某种方式被更正,无论您使用哪种字母大小写,只要拼写正确,它自己的 URL跳转到正确的大小写。

因此,如果您拼写类似以下 mysite.com/myfoLDer/something.html 的内容,它将自动更正 URL,并在任何给定 URL 的浏览器地址栏中提供以下 mysite.com/MyFolder/something.html

请帮助我一点或很多。

提前致谢。

【问题讨论】:

  • 不,实际上并非如此,我的问题有很大的不同,而不是使 URL 区分大小写,我需要以某种方式更正它,使其与实际的虚拟目录匹配,并更正任何输入错误的字母正确的大小写。
  • 请将您的.htaccess的内容添加到问题正文中

标签: php .htaccess mod-rewrite url-rewriting


【解决方案1】:

使用mod_rewrite 忽略大小写处理,使用NC 标志:

RewriteRule (.*) http://www.example.com/$1 [NC]

RewriteRule Flags - Apache HTTP Server:

使用 [NC] 标志会导致 RewriteRule 以不区分大小写的方式匹配。也就是说,它不关心字母在匹配的 URI 中是大写还是小写。

在下面的示例中,对图像文件的任何请求都将被代理到您的专用图像服务器。匹配不区分大小写,例如 .jpg 和 .JPG 文件都是可接受的。

【讨论】:

  • 我刚刚编辑了我的问题,如果您有空请看一下。
【解决方案2】:

你可以试试mod_speling and the CheckCaseOnly directive:

CheckCaseOnly On

假设你已经加载了 mod_speling。

【讨论】:

  • 不,我其实不会,让我试试,所以我必须使用那行代码?
【解决方案3】:

看起来这个问题已经在这里回答了:

.htaccess case sensitive and mod_rewrite

使用 [NC] 标志会导致 RewriteRule 以不区分大小写的方式匹配。也就是说,它不关心字母在匹配的 URI 中是大写还是小写。

【讨论】:

  • 这是我目前的规则 RewriteRule ^(.*)$ index.php/$1 [L,NC]
猜你喜欢
  • 1970-01-01
  • 2021-12-17
  • 2021-12-06
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 2011-01-07
  • 2012-12-10
  • 1970-01-01
相关资源
最近更新 更多