【问题标题】:PHP/Apache rewrite rules with multiple parameters?PHP/Apache 用多个参数重写规则?
【发布时间】:2015-12-06 03:57:36
【问题描述】:

我在用多个参数重写规则时遇到困难,将 URL 修改为对 SEO 友好。

我的网址:

http://domain/cat.php?alias=canon&sort=price&page=3

我想要一个重写规则,以便如下:

http://domain/c/canon?sort=price&page=3

这是我目前的规则:

RewriteEngine On
RewriteRule ^c/([a-z,0-9-]+)$ cat.php?alias=$1 [L]
RewriteRule ^c/([a-z,0-9-]+)?sort=([a-z]+)$ cat.php?alias=$1&sort=$2 [QSA]
RewriteRule ^c/([a-z,0-9-]+)?sort=([a-z]+)&page=([0-9]+)$ cat.php?alias=$1&sort=$2&page=$3 [QSA]

我尝试获取参数,但它不起作用。有人对使用哪些重写规则有任何想法吗?

谢谢! --hatxi

【问题讨论】:

    标签: php apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:
    RewriteRule ^c/([a-z,0-9-]+) cat.php?alias=$1 [L,QSA]
    

    应该够了。 QSA 标志将负责传递 sortpage 参数。

    您的规则不起作用,因为第一个带有[L] 标志,它只是丢弃其余的,因为它总是首先匹配。

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2013-06-13
      • 2012-11-22
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      相关资源
      最近更新 更多