要将干净的URL转换为带有可变数量参数的查询字符串URL,可以使用Apache的mod_rewrite模块。mod_rewrite模块允许我们在服务器配置文件(例如.htaccess文件)中定义重写规则,以便根据特定的模式重新编写URL。
以下是一个示例解决方案,假设我们有一个干净的URL:/products/12345,我们希望将其转换为查询字符串URL:/index.php?page=products&id=12345。
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine On
RewriteRule ^products/(\d+)$ /index.php?page=products&id=$1 [L]
这个重写规则有以下几个部分:
RewriteEngine On
:开启重写引擎。RewriteRule
:定义重写规则。^products/(\d+)$
:匹配以/products/开头,后面跟着一个或多个数字的URL。/index.php?page=products&id=$1
:重写的目标URL,其中$1是匹配到的数字部分。现在,当访问URL /products/12345时,它将被重写为/index.php?page=products&id=12345,并且可以在PHP脚本中使用$_GET['page']和$_GET['id']来获取参数值。