【发布时间】:2025-12-31 16:50:01
【问题描述】:
这是我重写干净 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 的网址,而不是www.mysitename.com/download.php?id=123&name=file-name
我想我必须使用类似RewriteRule ^(.*)/(.*)$ download.php?id=$1&name=$2 的东西。但是在实施时,我遇到了 404 错误。如何更改我的代码以传递多个 url。提前致谢。
【问题讨论】:
标签: .htaccess url mod-rewrite