mod_rewrite规则捕获查询参数(如果存在)

时间:2018-01-12 13:42:31

标签: php apache .htaccess mod-rewrite

我的htaccess文件中有以下规则:

RewriteRule ^/(v[0-9]+)/(resource)/?$ /$1/file.php?resource=$2 [NC,L]
RewriteRule ^/(v[0-9]+)/(resource)/([A-z0-9_]+)/?$ /$1/file.php?resource=$2&resource_id=$3 [NC,L]

这会重写像

这样的网址
/v1/resource/ to /v1/file.php?resource=resource

/v1/resource/resource_id to /v1/file.php?resource=resource&resource_id=resource_id

如何在“美化”URL中编写考虑查询参数的规则? E.g。

/v1/resource/?filter=filter_val to /v1/file.php?resource=resource&filter=filter_val

1 个答案:

答案 0 :(得分:1)

您想在方括号中添加“QSA”(=“查询字符串追加”):

RewriteRule ^/(v[0-9]+)/(resource)/?$ /$1/file.php?resource=$2 [NC,L,QSA]

您可以阅读此内容以获取进一步参考: Apache Doc