我正在尝试让我的旧分页类工作,它依赖于 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 上?
此重写规则:
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 之外,您的应用程序根本不需要更改。