Bar*_*art 17 apache case-sensitive mod-speling
我希望使用Apache的mod_speling模块使用不区分大小写的URL ,但这会产生不需要的"多个选项"列表,而Apache文档说
设置时,此指令将拼写更正的操作限制为大小写更改.不执行其他可能的更正.
我正在使用Apache 2.2.16 Unix全新安装进行测试,但我仍遇到与2008年提交的问题完全相同的问题.
当checkCaseOnly指令打开时,Apache列出了一些"多个选择"(状态代码300),这是意外(并且不想要)的行为!
我有这个httpd.conf:
CheckSpelling on
CheckCaseOnly on
Run Code Online (Sandbox Code Playgroud)
使用mod_speling第二个指令的第一个指令仅限于大小写修正
我究竟做错了什么?
fij*_*ron 10
要启用mod_speling(通过Location或VirtualHost),请使用以下指令:
CheckSpelling On
Run Code Online (Sandbox Code Playgroud)
如果你想要的只是不区分大小写使用:
CheckCaseOnly On
Run Code Online (Sandbox Code Playgroud)
您还需要启用RewriteEngine:
RewriteEngine On
Run Code Online (Sandbox Code Playgroud)
小智 10
TLDR:CheckCaseOnly由于自2014年10月以来一直未发布六年以上的错误而被破坏.
我知道这是一个老问题,但我遇到了同样的问题.此更新旨在帮助其他人解决同样的问题.
这个问题的当前答案是不正确的,因为OP正确使用mod_speling,但是有一个bug.
https://issues.apache.org/bugzilla/show_bug.cgi?id=44221
根本问题是apache人在修复此行为方面存在分歧,因为它会更改模块的其余部分.对于像6年这样的事情,这仍然没有固定.
在使用Apache 2.2的Ubuntu 12.04 LTS上,我做了以下内容:
建立speling.conf在${APACHE}/mods-available提供配置选项.
<IfModule mod_speling.c>
CheckSpelling On
CheckCaseOnly On
</IfModule>
Run Code Online (Sandbox Code Playgroud)链接speling.conf并speling.load进入启用的模块目录${APACHE}/mods-enabled:
# cd ../mods-enabled
# ln -s ../mods-available/speling.conf speling.conf
# ln -s ../mods-available/speling.load speling.load
Run Code Online (Sandbox Code Playgroud)重启服务器.
# service restart apache2
Run Code Online (Sandbox Code Playgroud)小智 0
您真的想要不区分大小写的 URL 吗?
为什么不像这样强制使用小写网址呢?
RewriteEngine On
RewriteMap lc int:tolower
RewriteRule (.*) ${lc:$1} [R]
Run Code Online (Sandbox Code Playgroud)
看看http://www.issociate.de/board/post/265865/make_URL
| 归档时间: |
|
| 查看次数: |
21968 次 |
| 最近记录: |