Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Regex 重写具有%20的动态查询字符串_Regex_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Regex 重写具有%20的动态查询字符串

Regex 重写具有%20的动态查询字符串,regex,.htaccess,mod-rewrite,url-rewriting,Regex,.htaccess,Mod Rewrite,Url Rewriting,多亏了@anubhava,我才有了这些改写规则 Options +FollowSymLinks -MultiViews Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+players/player\.php\?name=([^&\s]+) [NC] RewriteRule ^ Football-Players/%1? [R=301,L] Rewrit

多亏了@anubhava,我才有了这些改写规则

Options +FollowSymLinks -MultiViews
Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+players/player\.php\?name=([^&\s]+) [NC]
RewriteRule ^ Football-Players/%1? [R=301,L]

RewriteRule ^Football-Players/([^/]+)/?$ players/player.php?name=$1 [L,QSA,NC]
我还需要将name参数中的%20替换为-。克里斯蒂亚诺%20罗纳尔多将被改写为克里斯蒂亚诺罗纳尔多

我可以在上面的重写规则中完成吗?或者我需要做其他事情吗?

如果只有一个%20需要替换,则以下操作将起作用:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+players/player\.php\?name=([^\%20]+)\%20([^&\s]+) [NC]
RewriteRule ^ Football-Players/%1-%2? [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+players/player\.php\?name=([^&\s\%20]+)[&\s] [NC]
RewriteRule ^ Football-Players/%1? [R=301,L]

RewriteRule ^Football-Players/([^-]+)-([^/-]+)/?$ players/player.php?name=$1\%20$2  [L,QSA,NC]

RewriteRule ^Football-Players/([^/-]+)/?$ players/player.php?name=$1 [L,QSA,NC]

你还需要一条规则。是的,这是可行的,但现在1美元的参数是克里斯蒂亚诺·罗纳尔多,对吗?在我的sql中是Cristiano Ronaldo,我无法通过name参数提取信息。哦,那么你想在player.php中再次使用空格吗?我想这就是问题所在。我从零开始自己创建这个网站,没有任何经验,读了很多书和网络评论,我感到困惑。现在我明白了,我一开始就不必在sql字段中留下空格。现在试试编辑代码。是的,这是真实的,不允许在可以成为URL一部分的名称中使用空格。