【发布时间】:2012-10-26 01:24:05
【问题描述】:
我正在我的 htaccess 中寻找一些帮助,以便在使用分页功能时更好地处理我的网址。
目前我的 htaccess 看起来像这样:
RewriteEngine On RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?alias=$1 [QSA,NC,L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?alias=$1/$2 [QSA,NC,L]
基本上,我有两条规则。起初我只有第二个,将所有请求定向到我的索引页面,然后我解析出 url 的一些细节以显示正确的内容。我发现它不适用于只有一个子目录的 url,例如 example.com/bars,但只有两个目录,例如 example.com/bars/bar-name,所以我在它之前添加了规则。
这对我来说非常有用。我所有的网址看起来都很棒,而且 ?alias=bars/bars-name 已完全隐藏,现在看起来像 /bars/bars-name
虽然我最近集成了一个分页 php 功能。此函数创建如下所示的 url:
example.com/bars?alias=bars&info=mysql_table_bars&page=2
基本上'info'是分页函数查询的表名,'page'是当前页。一旦我开始使用此功能,似乎“别名”也开始显示在网址中。
我希望我的分页看起来像这些示例:
example.com/bars/page/2
example.com/hotels/page/5
etc...
我需要在我的 htaccess 中添加什么来处理这种情况?另外,有没有办法简化我现有的两条规则?
【问题讨论】:
-
呃,为什么你在 url 中显示表名?只是好奇。
-
我猜这是分页功能的要求,所以它知道它正在处理什么数据
标签: php .htaccess pagination