繁体   English   中英

纯文本的网址重写问题

[英]Url Rewriting issue with plain text

我遇到了一个小问题,已将这些规则放在我的.htaccess文件中:

RewriteRule ^search/([A-Za-z0-9-]+)/?$ search.php?s=$1 [NC,L]
RewriteRule ^search/([A-Za-z0-9-]+)?$ search.php?s=$1 [NC,L]
RewriteRule ^search/([A-Za-z0-9-]+)/([0-9]+)/?$ search.php?s=$1&p=$2 [NC,L]

只要链接看起来像search/test search/test/4 search/test/ ,它就可以工作,当我尝试执行此search/test1 test2类的操作时,就会出现问题。 我想我必须将searchstring转换为可以通过诸如search/test1%20%test2类的url传递的东西。 可悲的是,我不知道如何在.htaccess中实现此目标,因此,如果有人可以向我提供一些很好的信息。 提前致谢!

您可以将空白字符\\s附加到您的规则中:

RewriteRule ^search/([A-Za-z0-9-\s]+)/?$ search.php?s=$1 [NC,L]
RewriteRule ^search/([A-Za-z0-9-\s]+)?$ search.php?s=$1 [NC,L]
RewriteRule ^search/([A-Za-z0-9-\s]+)/([0-9]+)/?$ search.php?s=$1&p=$2 [NC,L]

因此,浏览到search/test1 test2将重定向到search.php?s=test1 test2

var_dump($_GET) ; // array(1) { ["s"]=> string(11) "test1 test2" } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM