如何使用.htaccess为多个参数创建干净的url

如何使用.htaccess为多个参数创建干净的url,.htaccess,url,mod-rewrite,.htaccess,Url,Mod Rewrite,这是我重写干净url的.htaccess代码 Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+download\.php\?id=([^\s&]+) [NC] RewriteRule ^ download/%1? [R=301,L] RewriteRule ^download/

这是我重写干净url的.htaccess代码

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+download\.php\?id=([^\s&]+) [NC]
RewriteRule ^ download/%1? [R=301,L]
RewriteRule ^download/([^/]+)/?$ download.php?id=$1 [L,QSA]
这段代码适用于url中的单个参数。例如,它将
www.mysitename.com/download.php?id=123
重写为
www.mysitename.com/download/123

但当我试图在url中传递多个参数时,得到的都是错误。搜索了各种资源和相关问题,但没有得到正确的解决方案

我需要像
www.mysitename.com/download/123/file name
这样的url,而不是
www.mysitename.com/download.php?id=123&name=file name


我想我必须使用这样的东西
RewriteRule^(.*)/(.*)$download.php?id=$1&name=$2
。但在实现时,我得到了404错误。如何更改代码以传递多个URL。提前感谢。

您只需要在规则中添加一个参数

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+download\.php\?id=([0-9]+)&name=([^\s&]+)\s [NC]
RewriteRule ^ download/%1/%2? [R=301,L]
RewriteRule ^download/([0-9]+)/([^/]+)/?$ download.php?id=$1&name=$2 [L]

不客气。别忘了验证我的答案,以便将你的问题标记为已解决