【问题标题】:htaccess rewrite for multiple query string with one dynamic empty query stringhtaccess 用一个动态空查询字符串重写多个查询字符串
【发布时间】:2017-09-19 02:00:47
【问题描述】:

所以,我遇到了查询字符串的问题,并将它们重写为看起来“更漂亮” 我的网站位于:localhost/admin/,所以当上传到我的服务器时,它也在 /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. 这个 ?users 页面也包含使用 php 中的 GET 参数的分页,所以它看起来有点像 http://localhost/admin/users&page=1 并且过去看起来像 http://localhost/admin/?users&page=2

所以基本上我想做的就是让代码看起来更像这样:http://localhost/admin/users/page/1。不幸的是,我无法对用户参数进行硬编码,因为我还有“网站”等其他部分,而且我还将有一个带有 id 等的编辑用户页面。所以我想知道是否有人可以帮助我解决这个问题的最佳方法或如何我可以修复上述 htaccess 规则吗?唯一有帮助的是:.htaccess mod_rewrite Unknown number of Variables of a GET form,但我仍然不知道如何为 url 前面的多个空 GET 变量实现它。

谢谢!

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    这就是我的工作,

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

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

    所以我建议你将分页网址更改为http://localhost/admin/users/page/1

    然后,当您在 index.php 中检索它们时,使用explode 函数分解字符串,

    $arr = explode('/',$_SERVER['QUERY_STRING']);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-26
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 2019-11-10
      • 2020-11-03
      相关资源
      最近更新 更多