代码之家  ›  专栏  ›  技术社区  ›  Tim

在.htaccess中重写mod\u

  •  1
  • Tim  · 技术社区  · 16 年前

    嘿,大家好,我怎样才能减少这个:

    www.example.com/index.php?page=viewblog&category=awesome
    

    具体来说:

    www.example.com/blog/awesome
    

    上面列出了该类别中的所有博客文章,但我也想在文章末尾添加标题,如下所示:

    www.example.com/index.php?page=viewblog&category=awesome&post=why-trees-are-green
    

    这需要缩短到:

    www.example.com/blog/awesome/why-trees-are-green
    

    有什么想法吗?提前感谢:)

    2 回复  |  直到 16 年前
        1
  •  2
  •   Vinko Vrsalovic    16 年前
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f    
    RewriteRule blog/([^/]+)/?$ index.php?page=viewblog&category=$1 [L]
    RewriteRule blog/([^/]+)/([^/]+)/?$ index.php?page=viewblog&category=$1&post=$2 [L]
    

    该条件确保请求的URL不是您要提供的实际文件(css、图像等)

    然后,每个级别一条规则,第一条规则将重写 http://yourserver.com/blog/whatever http://yourserver.com/index.php?page=viewblog&category=whatever

    第二个会重写 http://yourserver.com/blog/whatever/whenever http://yourserver.com/index.php?page=viewblog&category=whatever&post=whenever

    如果需要更多的级别,请相应地添加更多规则。

        2
  •  0
  •   cam8001    16 年前

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^./]+)/([^./]+)$ index.php?page=view$1&category=$2 [L]
    RewriteRule ^([^./]+)/([^./]+)/([^./]+)$ index.php?page=view$1&category=$2&post=$3 [L]
    
    推荐文章