.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从参数中修剪#(哈希)符号的主要内容,如果未能解决你的问题,请参考以下文章
在 $_GET 中使用转义 & 符号的 htaccess 重写规则失败