使用2个参数重定向htaccess

时间:2017-08-25 17:03:02

标签: .htaccess

我有一个包含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]

1 个答案:

答案 0 :(得分:0)

尝试

RewriteEngine on

RewriteCond %{QUERY_STRING} ^(|.+&)date=([^&]+) [NC]
RewriteRule ^songs$ /songs/%2? [R=301,L]

%2用于从第二组读取,该第二组应该是查询字符串中日期参数的完整值。使用?因此查询字符串不会附加在重定向中。我也这样做,以便正则表达式不会允许像anotherdate=这样的东西。

您可以详细查看正则表达式here