首页 > 解决方案 > 如何使用 .htaccess mod_rewrite 制作一个 seo 友好的 url

问题描述

我正在尝试使用 .htaccess 文件创建一个对 SEO 友好的 URL。

我要更改的网址如下所示:

https://www.example.com/category/?title=a+really+really+long+title

我想要的是:

https://www.example.com/category/a+really+really+long+title/

我努力了:

RewriteEngine On RewriteRule ^/category/?title=(.+)$ ^/category/$1/ [NC]

但它并没有给我想要的结果。非常感激任何的帮助!

标签: .htaccessmod-rewrite

解决方案


RewriteEngine On
RewriteCond %{QUERY_STRING} ^title\=(.+)$ [NC]
RewriteRule ^/?category/?$ /category/%1 [NC,R,L,QSD]
  • 我们首先使用 . 检查是否存在查询字符串RewriteCond。如果匹配 ^title\=(.+)$,则表示如果有一个带有 key 的查询字符串title,则捕获它的值。

  • 使用 RewriteRule,如果请求 URI 有一个category. 如果是,则将其重写为在查询字符串的重写条件中匹配的键的值在/category/%1哪里。这是对正则表达式(查询字符串)中捕获的组号的反向引用(向下滚动一点)。%1title%1

  • 请注意,如果您想对查询字符串中的任何键值对执行此操作,请更改title\w+[a-zA-Z0-9]+更准确。


推荐阅读