如何获取 URL 中的值并修改它以使用 mod-rewrite 进行分页?

问题描述 投票:0回答:1

我正在尝试让我的旧分页类工作,它依赖于 PHP 中 $_GET 可用的变量来重建分页链接的 URL,它工作得很好,但现在我正在使用 mod-rewrite 更改为“漂亮的 url” 。

所以这个

domain.com/?p=the-pagename-identifier&userid=12&page=3

现在是

domain.com/the-pagename-identifier/12/page-3

问题是我的旧分页的 PHP 将依赖 GET 变量来重新构建 URL,并确保 URL 中存在的任何变量保留在它为新页面创建的新 URL 中,现在我陷入困境,因为我需要它使用我在 URL 中出现的“虚拟”目录,domain.com/mail/inbox/page-12 实际上位于通过我的索引文件domain.com/index.php?p=mail 运行的根目录中。收件箱&页=12

我迷失了,因为在 URL 的 GET 部分中,某些页面会比其他页面包含更多内容。

由于所有页面都是通过根级别的 index.php 加载的,所以我几乎可以直接链接页面而无需完整的 URL 路径,但它最终会成为 domain,而不是像 domain.com/mail/page-2 这样的内容。 com/page-2 因为示例中的邮件目录不是真实的目录。 那么是否可以获取使用 mod-rewrite 制作的页面 URL 中的值,以便我可以让它认为它位于子文件夹中,然后将页码添加到页面的当前 URL 上?

php mod-rewrite pagination
1个回答
1
投票

此重写规则:

RewriteRule ^/([0-9a-zA-Z-]+)/([0-9]+)/page-([0-9]+)$  /index.php?p=$1&userid=$2&page=$3

会改变这个:

domain.com/the-pagename-identifier/12/page-3

进入此:

domain.com/?p=the-pagename-identifier&userid=12&page=3

对最终用户完全透明。

因此,除了生成新的 URL 之外,您的应用程序根本不需要更改。

© www.soinside.com 2019 - 2024. All rights reserved.