我正在我的 htaccess 中寻找一些帮助,以便在使用分页功能时更好地处理我的 url。
目前我的 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,所以我在它之前添加了规则。
这对我来说效果很好。我所有的 url 看起来都很棒,并且 ?alias=bars/bars-name 已完全隐藏,现在看起来像 /bars/bars-name
最近虽然我集成了一个分页php功能。此函数创建如下所示的 url:
example.com/bars?alias=bars&info=mysql_table_bars&page=2
基本上,'info' 是分页函数查询的表名,'page' 是当前页面。一旦我开始使用此功能,似乎“别名”也开始显示在 url 中。
我希望我的分页看起来像这些例子:
example.com/bars/page/2
example.com/hotels/page/5
etc...
我需要在我的 htaccess 中添加什么来处理这种情况?另外,有没有办法简化我现有的两条规则?