如何在URL中删除空格或'%2520'以及带有连字符(-)的加号?

时间:2018-08-13 17:41:34

标签: php regex .htaccess mysqli

我正在使用MySQL查询来显示数据库记录,而在使用mod_rewrite之前,我的网址结构是-http://127.0.0.1/medical-word-2.php?query=Choreic%20Abasia

在.htaccess中使用mod_rewrite命令后

RewriteEngine on

    #redirect all old URLs to the new rewritten URL
    RewriteCond %{THE_REQUEST} ^GET\ /+medical-word-2\.php\?query=([^&\ ]+)
    RewriteRule ^ /%1? [R=302,L]

    #rewrite folder path 
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^/]+)/?$ medical-word-2.php?query=$1 [QSA,L]

网址的结构为-http://127.0.0.1/Choreic%2520Abasia

但是现在我想要这个网址结构– http://127.0.0.1/choreic-abasia

我想从网址中以“-”删除“%2520”。有什么办法可以实现这种URL结构?

1 个答案:

答案 0 :(得分:0)

使用preg_replace("/%2520|\+/gm", "-", urlstring);

Demo

%2520从字面上匹配%2520

|的意思是“或”

\+匹配+

所以+或%2520被连字符代替