RewriteRule - 从丑陋到漂亮的URL,变量无法正确解析

时间:2017-05-15 14:09:35

标签: regex .htaccess mod-rewrite url-rewriting

我想帮助使用正则表达式将一个丑陋的网址(http://example.com/image.php?id=1&name=Dog)重写为一个漂亮的网址(http://example.com/1/Dog)。

关于此版本的反向版本以及我需要的其他版本有很多问题。但是,它们不起作用。

RewriteRule ^image.php\?id=(.*)&name=(.*)$  http://example.com/$1/$2? [R=301,L]

这是我提出的正则表达式。在Regex101上测试似乎没问题(?)https://regex101.com/r/uUlccx/2

它应该与此相反:

RewriteRule ^([^/]*)/([^/]*)$ /image.php?id=$1&name=$2 [L]

但似乎并非如此。任何人都知道RewriteRule应该如何?

编辑:http://htaccess.mwl.be?share=47b41b23-1752-5a26-8432-196c95d1d669 htaccess测试员

编辑2:我有点进一步,但它似乎仍然没有完全发挥作用。第二个变量不会被重写:

RewriteCond %{QUERY_STRING} ^(.*&)?id=(.*)&name=(.*)$
RewriteRule ^image\.php$  http://example.com/%1/%2/? [R=301,L]

1 个答案:

答案 0 :(得分:2)

RewriteCond %{QUERY_STRING} ^id=(.*)&name=(.*)$
RewriteRule ^image\.php$  http://example.com/%1/%2/? [R=301,L]

这似乎是解决方案。在正常的重写规则中找不到查询值?