我有一个包含2个参数的网址,我想将用户重定向到干净的网址
https://www.example.com/songs?date=1999&btn-login=
我需要它
https://www.example.com/songs/1999
我该怎么做?
我已经尝试了这个,但网址保持原样,没有任何更改
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /songs\.php\?date=(.*)&btn-login=\ HTTP
RewriteRule ^ /%2? [R,L]
#Internal rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /songs.php?date=$1 [L]
答案 0 :(得分:0)
尝试
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(|.+&)date=([^&]+) [NC]
RewriteRule ^songs$ /songs/%2? [R=301,L]
%2
用于从第二组读取,该第二组应该是查询字符串中日期参数的完整值。使用?
因此查询字符串不会附加在重定向中。我也这样做,以便正则表达式不会允许像anotherdate=
这样的东西。
您可以详细查看正则表达式here。