如何在 .htaccess 中使用 GET 变量重写 URL 以实现干净路由?

Linda Hamilton
发布: 2024-11-15 11:34:03
原创
220 人浏览过

How Can I Rewrite URLs with GET Variables in .htaccess for Clean Routing?

Rewriting URLs with GET Variables in .htaccess

When using PHP for routing purposes (e.g., index.php?page=controller), it is useful to have a cleaner and more user-friendly URL structure. .htaccess, a widely used Apache configuration file, provides a convenient way to rewrite URLs and handle GET variables.

In the given situation, the goal is to have URLs like http://localhost/controller/ route to index.php?page=controller in a clean and concise manner. Additionally, the requirement is to support URLs with parameters, such as http://localhost/controller/param/value/param/value, which should map to http://localhost/controller/?param=value¶m=value with the GET variables.

To achieve this, a simple yet effective solution can be implemented using a rewrite rule in the .htaccess file:

RewriteRule ^([\w\d~%.:_\-]+)/(.+)$ index.php?page=$1&params=$2 [NC, QSA]
登录后复制
  1. Rewrite Pattern: The RewriteRule starts with the pattern ^([\w\d~%.:_\-]+)/(.+)$, which matches any URL consisting of a controller name followed by a slash and any additional parameters separated by slashes.
  2. Target URL: The target URL is index.php?page=$1¶ms=$2. Here, $1 represents the controller name, and $2 represents the entire parameter string.
  3. Rewrite Flags: The NC flag (No Case) ensures case-insensitive matching, while the QSA flag (Query String Append) concatenates the existing GET string with the parameters from the rewrite rule.

With this rule in place, a URL like http://localhost/controller/param/value/param/value will be rewritten to index.php?page=controller¶ms=param/value/param/value. This provides a clean and easy way to manage GET parameters and maintain the original URL structure.

To access these parameters in your PHP code, you can use $_GET['params'], which contains the parameter string. You can then split it using a delimiter (e.g., /) and access individual parameter values.

以上是如何在 .htaccess 中使用 GET 变量重写 URL 以实现干净路由?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板