使用 .htaccess 重写 GET 变量
许多 Web 应用程序使用包含动态内容的 URL 结构,例如提供的示例:index.html。 php?页面=控制器。为了改善用户体验并保持更清晰的 URL 结构,需要重写这些 URL 以以更用户友好的格式显示。这可以使用 .htaccess 规则来实现。
提供的 .htaccess 规则有效地将 http://localhost/index.php?page=controller 形式的 URL 重写为 http://localhost/controller/。但是,要求还支持 GET 参数,从而产生诸如 http://localhost/controller/param/value/param/value 之类的 URL。
要实现此目的,可以将以下 RewriteRule 添加到.htaccess 文件:
RewriteRule ^(.*)$ index.php?params= [NC, QSA]
此规则捕获整个 URL,包括任何参数,并将捕获的数据分配给 params GET 变量。因此,URL http://localhost/controller/param/value/param/value 将被重写为index.php?params=param/value/param/value。
在 PHP 脚本中,params GET 变量可以分解以提取各个参数及其值。例如:
<?php $params = explode("/", $_GET['params']); for($i = 0; $i < count($params); $i+=2) { echo $params[$i] ." has value: ". $params[$i+1] ."<br />"; } ?>
通过此修改,.htaccess 规则将成功重写带有 GET 参数的 URL,使 PHP 脚本能够访问这些参数以进行进一步处理和控制器逻辑。
以上是如何使用 .htaccess 重写带有 GET 参数的 URL?的详细内容。更多信息请关注PHP中文网其他相关文章!