Regex 重写具有%20的动态查询字符串
多亏了@anubhava,我才有了这些改写规则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
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一部分的名称中使用空格。