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

问题描述 投票:0回答:1

嘿大家我正在尝试使用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)工作得很好。你可以看到我不是一个好的服务器管理员,所以我希望你的帮助。如果您需要我的更多信息并且谢谢,请告诉我

.htaccess mod-rewrite frameworks
1个回答
0
投票

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

来自here

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

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

© www.soinside.com 2019 - 2024. All rights reserved.