Mod rewrite mod_重写未转发编码哈希?

Mod rewrite mod_重写未转发编码哈希?,mod-rewrite,Mod Rewrite,我在服务器上收集了一小部分文本文件。URL如下所示: 我有一个小PHP脚本,它将文本文件URI作为参数,并将文本文件转换为JSON: 我有一个重写规则,让它变得漂亮: 重写规则^(.*).json$/json.php?文件=$1.txt 而且效果很好。现在,JSON的URI与文本URI相同,只是文件扩展名不同。但如果我有一个名为has的编码文本文件: Apache在打开文本文件时没有问题。类似地,“真实”URI也可以工作: 但重写规则使它出错。因此,PHP看到的“file”GET参数是“

我在服务器上收集了一小部分文本文件。URL如下所示:

我有一个小PHP脚本,它将文本文件URI作为参数,并将文本文件转换为JSON:

我有一个重写规则,让它变得漂亮: 重写规则^(.*).json$/json.php?文件=$1.txt

而且效果很好。现在,JSON的URI与文本URI相同,只是文件扩展名不同。但如果我有一个名为has的编码文本文件:

Apache在打开文本文件时没有问题。类似地,“真实”URI也可以工作:

但重写规则使它出错。因此,PHP看到的“file”GET参数是“/Text%20File%20”--带有散列并在丢失之后

我可以避免在文件名中使用散列,但我很好奇,为什么散列会在其他编码字符没有编码的情况下被取消编码,我在其他地方找不到对此的任何引用。

您需要在重写规则中使用:

RewriteRule ^(.*).json$ /json.php?file=$1.txt [B]
您需要在重写规则中使用:

RewriteRule ^(.*).json$ /json.php?file=$1.txt [B]

我一直想知道那面旗帜做了什么。完美的非常感谢。我一直想知道那面旗子是干什么的。完美的非常感谢。