如何在.htaccess中添加正确的页面重写规则?

发布于 12-11 07:32 字数 846 浏览 0 评论 0原文

我正在尝试在我的网站上建立分页系统。

之前,我有它:

RewriteRule ^famille/([^/]*)-([^-]*)\.html$ /?fond=famille&id_rubrique=$1 [L]

我可以像这样访问我的页面:

http://blabla.net /famille/131-articles_de_cave.html

所以,现在我为分页添加一条规则:

RewriteRule ^famille/([^/]*)-([^-]*)-([^-]*)\.html$ /?fond=famille&id_rubrique=$1&page=$3 [L]

如果继续:

http://blabla.net/famille/131-articles_de_cave-2.html(对于第二页)它有效。

但如果我在第一页,我会收到 404 错误:

http://blabla.net/famille /131-articles_de_cave.html

如何解决这个问题? (我需要在第一页访问,不写页码)

I'm trying to do a paginate system on my website.

Before, I had it :

RewriteRule ^famille/([^/]*)-([^-]*)\.html$ /?fond=famille&id_rubrique=$1 [L]

And I could get to my page like this :

http://blabla.net/famille/131-articles_de_cave.html

So, now I add a rule for the paginate :

RewriteRule ^famille/([^/]*)-([^-]*)-([^-]*)\.html$ /?fond=famille&id_rubrique=$1&page=$3 [L]

If a go on :

http://blabla.net/famille/131-articles_de_cave-2.html (for the page two) it works.

But if I am on the fist page, I get 404 error :

http://blabla.net/famille/131-articles_de_cave.html

How fix this problem ? (I need to access on the first page without write the page number)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灼疼热情2024-12-18 07:32:37

您使用这两种规则还是只使用一种规则?

如果您按以下顺序使用这两个规则:

RewriteRule ^famille/([^/]*)-([^-]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1&page=$3 [L]
RewriteRule ^famille/([^/]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1 [L]

那么第一组的排他性不够。贪婪匹配将匹配第一个 -。试试这个:

RewriteRule ^famille/([^-/]*)-([^-]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1&page=$3 [L]
RewriteRule ^famille/([^-/]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1 [L]

或者只是交换规则?

PS:根据 http://www.w3.org/Provider/Style/URI您可能想省略 .html...

Are you using both rules or just one?

If you are using both rules in this order:

RewriteRule ^famille/([^/]*)-([^-]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1&page=$3 [L]
RewriteRule ^famille/([^/]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1 [L]

then the first group is not exclusive enough. The greedy match will match the first -. Try this:

RewriteRule ^famille/([^-/]*)-([^-]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1&page=$3 [L]
RewriteRule ^famille/([^-/]*)-([^-]*)\.html$ /fond=famille&id_rubrique=$1 [L]

Or maybe just swap the rules?

PS: As per http://www.w3.org/Provider/Style/URI you might want to leave out the .html...

柠栀2024-12-18 07:32:37

页码之前的连字符是你的问题。将其设为可选,尝试以下操作:

RewriteRule ^famille/([^/]*)-([^-]*)-?([^-]*)\.html$ /?fond=famille&id_rubrique=$1&page=$3 [L]

The hyphen before the page number is your problem. Make it optional, try this:

RewriteRule ^famille/([^/]*)-([^-]*)-?([^-]*)\.html$ /?fond=famille&id_rubrique=$1&page=$3 [L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文