使用.htaccess从查询参数中删除最后一个斜杠


Removing the last slash from query parameter using .htaccess

我想使用.htaccess从查询参数的值中删除最后一个斜杠字符。

假设我有以下URL:

www.example.com/?key_=/job_category/mobile/

然后我想从/job_category/mobile/中删除最后一个斜杠。

删除最后一个斜杠后,它将重定向到www.example.com/snapshots/job_category/mobile.html,,但在我当前的设置下,它将重定向到www.example.com/snapshots/job_category/mobile/.html

我当前的.htaccess文件是这样的:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^key_=(.*)$
RewriteRule ^(.*)$ snapshots/%1.html [R=301,QSD]

您不需要在RewriteRule中捕获任何内容,因为所有必要的信息已经被RewriteCond捕获。要删除尾斜杠,请使用类似'/*$的表达式(末尾有0个或多个斜杠):

RewriteEngine on
RewriteCond %{QUERY_STRING} ^key_=(.*?)'/*$
RewriteRule ^.*$ /snapshot%1.html [R=301,QSD]