.htaccess从参数中修剪#(哈希)符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.htaccess从参数中修剪#(哈希)符号相关的知识,希望对你有一定的参考价值。

嘿大家我正在尝试使用php从头开始构建一个小的MVC框架。我正在使用简单的URL方案来实现contorller / method / params。我的htaccess文件看起来像这样:

<IfModule mod_rewrite.c>
  Options -Multiviews
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>

但是,当我试图接收url字符串:explorer / add / c#via $ _GET ['url']我正在使用explorer / add / c即使我编码就像这个explorer / add / c%23仍然一无所获但explorer / add / c%24($ -symbol)工作得很好。你可以看到我不是一个好的服务器管理员,所以我希望你的帮助。如果您需要我的更多信息并且谢谢,请告诉我

答案

片段不会由客户端发送到服务器。即#及其后的任何内容都不会成为服务器看到的URL的一部分。

来自here

片段标识符在信息检索系统中具有特殊作用,作为客户端间接引用的主要形式,允许作者专门识别仅由资源所有者间接提供的现有资源的方面。因此,片段标识符不用于URI的特定于方案的处理;相反,片段标识符在解除引用之前与URI的其余部分分开,因此片段本身内的识别信息仅由用户代理解除引用,而不管URI方案如何。

如果要重定向包含片段部分的URL,则需要通过javascript实现重定向客户端。

以上是关于.htaccess从参数中修剪#(哈希)符号的主要内容,如果未能解决你的问题,请参考以下文章

ruby 符号作为键,但无法从哈希中获取值

如何从 Spring MVC 中的请求参数中修剪空格

在 $_GET 中使用转义 & 符号的 htaccess 重写规则失败

为啥关键字参数必须作为带有符号键的哈希传递,而不是 Ruby 中的字符串键?

C# 中从字符串中修剪换行符的最简单方法是啥?

如何在 playframework 中自动修剪请求参数