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在这个阶段没有角色,但是基本的正则表达式逻辑应该保持不变。同样有效:)不只是包含“+”字符,而是包含所有字符!