【问题标题】:RewriteRule in clean url for pagination search engine用于分页搜索引擎的干净 url 中的 RewriteRule
【发布时间】:2014-01-03 09:14:00
【问题描述】:

我有 htaccess 文件和分页搜索引擎, 这是我的搜索引擎表单

<form class='fright' method='get' action='hasil_cari=' onsubmit="return false;">

      <input class='srcText' style='padding:6px;'type='text' name='keyword'>
      <input class='submit' style='padding:5;' type='submit' value='find' onclick="window.location.href=this.form.action + this.form.keyword.value;">

</form>

这是我的干净 url 的重写规则

RewriteRule ^admin/keyword=(.*)-page=(.*)$ admin/index.php?h=home&m=find&keyword=$1&p=$2 [L]

然后我点击第 2 页,但 '-page=2' 读取为关键字,因此出现了我创建的错误消息

在我的浏览器地址栏中:localhost/project/admin/keyword=....-page=2

“找不到数据=.....-page2”

谁能解决?

【问题讨论】:

    标签: php html .htaccess pagination


    【解决方案1】:

    .* 匹配任意字符 0 次或多次。

    您可以使用[^-]* 指定忽略- 字符(方括号表示范围,范围开头的插入符号表示“不匹配这些”),以便-page您的 URL 的一部分不会被关键字的一部分所吞噬:

    RewriteRule ^admin/keyword=([^-]*)-page=(.*)$ admin/index.php?h=home&m=find&keyword=$1&p=$2 [L]
    

    此外,如果您只想匹配数字页码,您可以这样做:

    RewriteRule ^admin/keyword=([^-]*)-page=([0-9]*)$ admin/index.php?h=home&m=find&keyword=$1&p=$2 [L]
    

    【讨论】:

    • 好的,这对我来说很好。您是否尝试过使用不同的浏览器来确保请求没有被缓存?这次您收到什么消息/错误?还有其他 htaccess 规则吗?
    • 同样的错误,如果我搜索“burger”然后我点击第 2 页,同样的错误“找不到数据=burger-page2”
    • 您的第 2 页链接是否正确?错误消息包含 data=burger-page2(在页面和 2 之间缺少 =)而不是 data=burger-page=2
    • 链接来自我的分页循环,我认为第 2/3/4 页是相同的
    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多