htaccess - 使用查询参数重写 URL

htaccess - Rewrite URLs with query parameter

我有以下规则来重写 URLs,它适用于单个单词参数。但是,如果变量中有“-”,则不起作用。我怎样才能修改它来完成这个?

旧URL: domain.com/medications/?drug=medication-title

新URL: domain.com/medications/medication-title

RewriteRule ^medications/([^/d]+)/?$ medications/?drug= [QSA]

正如我所说,当名称中没有“-”时它可以工作,但需要它来处理所有传递的参数。

感谢您的帮助。

您需要在 root .htaccess 中使用此规则来修复您的正则表达式:

Options -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^medications/([^/]+)/?$ medications/?drug= [QSA,L,NC]