Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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 htaccess重写规则url疯狂搜索_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php htaccess重写规则url疯狂搜索

Php htaccess重写规则url疯狂搜索,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我有一个.htaccess文件,其中包含以下内容: RewriteRule ^search/([a-zA-Z]+)$ index.php?page=search&search=$1 因此,基本上它发送如下URL: url.net/search/this 为此: url.net/?page=search&search=this 但当我发送一个URL时,如: url.net/search/this+search 我得到一个返回的错误,因为它不知道如何处理+搜索位 当用户单击

我有一个
.htaccess
文件,其中包含以下内容:

RewriteRule ^search/([a-zA-Z]+)$ index.php?page=search&search=$1 
因此,基本上它发送如下URL:

url.net/search/this
为此:

url.net/?page=search&search=this
但当我发送一个URL时,如:

url.net/search/this+search
我得到一个返回的错误,因为它不知道如何处理
+搜索

当用户单击搜索时,有没有办法让它在单词之间包含
+


我希望这样,如果用户键入
I+want+this+或+that
this+是+what+I+want+to+find
,那么无论它有多长,它都知道如何处理解析
$\u GET['search']
参数。

您应该能够将它包含在正则表达式中…记住要转义它

RewriteRule ^search/([a-zA-Z\+]+)$ index.php?page=search&search=$1

请尝试重新布线规则的以下正则表达式:

RewriteRule ^search/([a-zA-Z].+)$ index.php?page=search&search=$1 
注意
符号前面的
。在这里作为正则表达式工作。是的,我知道这是一个Apache重写规则&PHP在这个阶段没有角色,但是基本的正则表达式逻辑应该保持不变。

同样有效:)不只是包含“+”字符,而是包含所有字符!