htaccess使用一个动态空查询字符串

时间:2017-04-21 23:15:18

标签: php apache .htaccess mod-rewrite

所以,我遇到了查询字符串的问题,并将它们重写为“更漂亮” 我的网站位于:localhost / admin / so,当上传到我的服务器时,它也位于/ admin目录下,.htaccess文件如下所示:

RewriteEngine On

# redirect URL with empty query string to index.php
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/?(.*)$ /admin/index.php?$1 [NC,L]

不幸的是,我为管理面板设计的所有页面都链接到index.php文件。因此,当我最初用于请求http://localhost/admin/?users时,它会显示所有用户的列表。我想让这个更漂亮,所以我使用了上面的htaccess规则并提出了http://localhost/admin/users。出现了两个问题:

  1. 无法访问css /下的admin文件夹中的css文件,因此没有应用任何样式。
  2. 此用户页面包含使用php中的GET参数的分页,因此它看起来有点像http://localhost/admin/users&page=1,过去看起来像http://localhost/admin/?users&page=2
  3. 基本上我想做的就是让代码看起来更像这样:http://localhost/admin/users/page/1。不幸的是我不能硬编码用户参数因为我有其他部分,如“网站”,我也将有一个编辑用户页面的ID等。所以我想知道是否有人可以帮助我解决这个问题的最佳方法或如何我可以解决上面的htaccess规则吗?唯一有帮助的是:.htaccess mod_rewrite Unknown number of Variables of a GET form但我仍然迷失在如何在网址前面为多个空GET变量实现它。

    谢谢!

1 个答案:

答案 0 :(得分:0)

这就是我的工作,

首先在页面的head部分使用<base href="domain.com/"> css部分。

您正在重定向完整网址以查询index.php的字符串,我假设您检索的是$_SERVER['QUERY_STRING'];

因此,我建议您将分页网址更改为http://localhost/admin/users/page/1

之后,当你在index.php中检索它们时,使用explode函数

爆炸字符串
$arr = explode('/',$_SERVER['QUERY_STRING']);

$arr内,您将拥有从查询字符串中获取的所有值。