Php 如何允许#&;URL中的字符,但仍允许查询字符串
我有一个网站,允许用户根据用户输入创建页面Php 如何允许#&;URL中的字符,但仍允许查询字符串,php,.htaccess,Php,.htaccess,我有一个网站,允许用户根据用户输入创建页面example.com/My page 问题在于他们是否创建了一个类似example.com/H&E Photos或example.com/#1粉丝俱乐部 一旦php对url进行解码,它就会尝试将这些字符解析为散列(或者在?的情况下是查询字符串) 在我的.htace中,我正在做这个([^/]+?) 处理这种情况的典型方式是什么?理想情况下,无需访问id系统(example.com/131234121)。我的计划很差:( EDIT.Talking abou
example.com/My page
问题在于他们是否创建了一个类似example.com/H&E Photos
或example.com/#1粉丝俱乐部
一旦php对url进行解码,它就会尝试将这些字符解析为散列(或者在?
的情况下是查询字符串)
在我的.htace中,我正在做这个([^/]+?)
处理这种情况的典型方式是什么?理想情况下,无需访问id系统(example.com/131234121)。我的计划很差:(
EDIT.Talking about PHP here.url在到达服务器时进行编码,PHP在解析regex和url之前进行解码如果您使用PHP为用户输入的url创建/处理存储条目,则在尝试处理之前在字符串上使用htmlentities
显然,我要找的是一个重写标志
B在应用转换之前对非字母数字字符进行转义。
这允许您向URL发送百分比编码字符串,而无需事先对其进行解码
因此,这实际上是一个apache的东西,而不是PHP。很抱歉这个误导性的问题。@Herohtar在这里谈论PHP。PHP在解析url之前先对url进行解码。那么为什么要用JavaScript标记这个问题呢?在任何情况下,你都不能在url中使用这些字符而不进行编码。@Herohtar已修复。我如何用PHP对它们进行编码?也许?