Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何允许#&;URL中的字符,但仍允许查询字符串_Php_.htaccess - Fatal编程技术网

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对它们进行编码?也许?