我的 htaccess 规则转到页面而不是 id

Posted

技术标签:

【中文标题】我的 htaccess 规则转到页面而不是 id【英文标题】:my htaccess rule goes to page and not id 【发布时间】:2012-01-25 18:59:57 【问题描述】:

我有一个出租物业网站,我正在迁移到一个新网站。我的 apache 规则有问题。

例如: /佛罗里达州/迈阿密/2/ /CA/圣地亚哥/41/

我希望能够根据 url 动态显示页面

rewriterule ^([a-z]+)/$ index.php?state=$1&city=&mode=list
rewriterule ^([a-z]+)/([a-z]+)/$ index.php?state=$1&city=$2&mode=list
rewriterule ^([a-z]+)/([a-z]+)/([0-9]+)/$ index.php?state=$1&city=$2&id=$3

所以我看到了每个州的所有列表或每个州/城市的列表

现在我的问题是当我尝试查看第 2 页时,我得到的是 ID

有什么神奇的方法可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

以下是对您有用的方法(将其放在文档根目录的 .htaccess 中):

RewriteEngine On
RewriteBase /

rewriterule ^([a-z]+)/?$ index.php?state=$1&city=&mode=list [NC,L,QSA]
rewriterule ^([a-z]+)/([a-z0-9_\-]+)/?$ index.php?state=$1&city=$2&mode=list [NC,L,QSA]
rewriterule ^([a-z]+)/([a-z0-9_\-]+)/([0-9]+)/?$ index.php?state=$1&city=$2&pagenum=$3&mode=page [NC,L,QSA]
rewriterule ^([a-z]+)/([a-z0-9_\-]+)/([0-9]+)/([a-z0-9_\-]+)/?$ index.php?state=$1&city=$2&id=$3&mode=view [NC,L,QSA]

所以:

/california/san-diego/2/california/san-diego/2/ 将转到第 2 页

/FL/Miami/2/home-house-test/FL/Miami/2/home-house-test/会到属性页

【讨论】:

以上是关于我的 htaccess 规则转到页面而不是 id的主要内容,如果未能解决你的问题,请参考以下文章

htaccess 规则以在访问 http://localhost 时提供 index.php 而不是 index.html

.htaccess 将另一个规则覆盖到其他页面

.htaccess 旧域到新域 301 重定向,但只有域,而不是页面

重写子文件夹而不是主网站的规则

.htaccess 规则在用户使用站点时使站点脱机

htaccess 重写规则 404 错误